arraylist 的副本不断被修改为原始值

2023-12-04

我正在开发一个用于保存和调用屏幕状态的系统,这是我第一次搞乱这种东西,所以我不太确定最好的方法是什么,但我目前存储了所有的“PreviewMonitor”数组列表内的对象(大约 40 个左右)。问题是,当我创建一个名为“allPreviewMonitors”的 ArrayList 副本进行存储时,我最终会得到一个 ArrayList,其中的元素随着原始元素的更新而不断变化。这几乎就像我正在使用原始的 ArrayList 一样,但事实上,当我创建 allPreviewMonitors 的副本时,它应该是一个完全不同的 ArrayList,具有元素及其状态的“冻结”版本。为什么会发生这种行为?如果需要,我可以显示代码,但我不确定这里是否需要它。


An Arraylist像所有人一样Collections,仅包含对对象的引用。 复制 List 是不够的,您还必须在创建 List 副本时对列表中的元素进行克隆(或创建新元素,或使用复制构造函数)。

这称为制作“深复制”,而您当前拥有“浅复制”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arraylist 的副本不断被修改为原始值 的相关文章

随机推荐

  • python中的多进程会重新初始化全局变量吗?

    我有一个多处理程序 无法使用全局变量 我有一个这样开始的程序 from multiprocessing import Process Pool print Initializing someList 这意味着我有一些列表变量在调用我的 ma
  • 你认为 parseInt("08") 会返回什么? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript parseInt 八进制错误的解决方法 令人惊讶的是它又回来了0 为什么 获得正确结果的 正确 解决方案是什么 使用基数 var x parseInt 08 10 一些 Java
  • 如何在不删除分隔符的情况下分割Golang字符串?

    根据答案如何在Golang中分割字符串并将其分配给变量 拆分字符串会生成一个字符串数组 其中数组中的任何字符串中都不存在分隔符 有没有办法分割字符串 使分隔符位于给定字符串的最后一行 e x s strings split Potato S
  • 检测变量变化 C# [重复]

    这个问题在这里已经有答案了 我已经搜索了一段时间 但没有找到任何可以解决我的问题的信息 我有一个整数 private static int kills 0 我想要一个函数在该变量更改时运行 比如 现在是0 如果它变成2 我想要一个像这样的函
  • 权限错误 - 尝试使用 android facebook sdk 交朋友

    我正在尝试向我的 Android 应用程序添加一项功能 允许用户与标记为签到的其他人 签到 我的 checkins 方法工作没有问题 并且可以通过添加用户 ID 作为参数来标记某个方法 请参阅下面的代码 public void postLo
  • 如何绘制 3D 矢量场?

    The Data 我有一个向量场 除了 z 分量之外 所有分量均为 0 我只有该字段的一小部分的数据 我的目标是在 3D 图中显示这个切片 切片 import numpy as np import matplotlib pyplot as
  • 错误:任务“:app:processDebugResources”执行失败。 > java.io.IOException: 无法删除 android studio 中的文件夹“”

    我正在尝试使用 Android Studio 开发 Android 应用程序 所以我创建了一个 Android 应用程序并想发布它 每当我点击 构建项目 来获取apk文件时 我收到此错误 Error Execution failed for
  • 对象实例化后,JS 从构造函数运行函数

    是否有可能做到这一点 var hammer new Hammer create a new instance hammer nail really call Hammer prototoype hit object 我可以在原始对象上计算出
  • Swift NSMutableArray 添加一个数组

    问题是我第一次获取数据WebServices所以我已经显示了这些数据TableView然后用户向下滚动表视图 然后再次调用WebSevices并将此数据再次添加到数组中 但是当我尝试在 nsmutable 类型数组应用程序中再次添加数据时c
  • MySQL 日期差异

    我正在使用 MySQL 和 PHP 我想找出两个日期之间的差异 我有一个名为advertisers 其中有一个字段web start date 我想选择所有条目web start date距离当前日期不到 30 天 只需使用datediff
  • Oracle时间戳到sql server DateTime

    我有多个来自oracle数据库的语句 我需要在SQL Server中使用它们 insert into COMENZI NR COMANDA DATA MODALITATE ID CLIENT STARE COMANDA ID ANGAJAT
  • 将 YouTube 应用中的视频分享到我的 ios 应用

    当我在 iOS 上的 YouTube 应用程序中单击视频上的共享按钮时 是否可以让我的应用程序出现 我知道如何通过将我的文档类型添加到 Info plist 文件来将我的应用程序添加到打开选项中 但是当在 ios 上的 youtube 应用
  • ORA-19011: 字符串缓冲区太小

    我写了一个存储过程SP DEMAND QRY 如果数据中只有少数匹配行 5 或 6 这会产生正确的值Demand桌子 但是 如果该表包含更多匹配行 gt 6 那么在执行它时我会收到此错误 Error ORA 19011 Character
  • AR参考图像 - 图像的直方图较窄

    I am adding an image into ARKit project But it gives error 您有一张图像 其内容不利于检测 有一段在 WWDC18 演讲 ARKit 2 的新增功能中讨论了这一点 并提供了一些优点和
  • 自动绑定模型中的 Polymer Dart $[] 选择器

    Since 聚合物体已被删除 我们需要使用自动结合模板来使用聚合物结合功能之外聚合物元件
  • Discord.py 如何添加静音命令

    我正在制作一个不和谐的机器人 我真的想制作一个静音命令来使有毒用户静音 这是我目前的代码done 这不是重写版本 bot command pass context True async def mute ctx user id userNa
  • Android onSearchRequested() 回调调用活动

    我有一个 MapActivity 当按下搜索按钮时 它将显示 Android 搜索框 SearchManager 管理该对话框 并将用户的查询传递给可搜索活动 该活动搜索 SQLite DB 并使用自定义适配器显示结果 这工作正常 我从显示
  • Ajax Accordion 失去当前窗格

    我正在使用带有多个窗格的 Ajax Accordion 在回发时 当前打开的窗格始终重置回第一个窗格 有什么办法可以解决这个问题吗 Thanks Rob 我通过在查询字符串中传递当前窗格索引 然后将当前窗格设置回目标页面的 Page Loa
  • 实体框架 v6 GroupBy 丢失原始排序

    我有一个查询的以下部分 这是一个更大的查询的结尾 queryBuilder 是一个 IQueryable var results queryBuilder OrderBy x gt x Vehicle RangeId ThenBy x gt
  • arraylist 的副本不断被修改为原始值

    我正在开发一个用于保存和调用屏幕状态的系统 这是我第一次搞乱这种东西 所以我不太确定最好的方法是什么 但我目前存储了所有的 PreviewMonitor 数组列表内的对象 大约 40 个左右 问题是 当我创建一个名为 allPreviewM