将对象添加到 ArrayList 并稍后修改

2023-11-29

如果我有一个 ArrayList,并向其中添加了一个对象,然后修改了该对象,那么此更改会反映在 ArrayList 中吗?或者当我将对象添加到 ArrayList 时,Java 创建一个副本并将其添加到 ArrayList 中?

如果我将此对象的引用更改为 null 会怎样?这是否意味着 ArrayList 中的对象现在也为 null?


此更改会反映在 ArrayList 中吗?

是的,自从您添加了参考到列表中的对象。您添加的引用仍将指向同一个对象(您已修改)。


或者当我将对象添加到 ArrayList 时,Java 创建一个副本并将其添加到 ArrayList 中?

不,它不会复制该对象。 (它将复制对该对象的引用。)


如果我将此对象的引用更改为 null 会怎样?这是否意味着 ArrayList 中的对象现在也为 null?

不,因为原始参考文献的内容是copied添加到列表时。 (请记住,这是参考被复制的,而不是对象。)

示范:

StringBuffer sb = new StringBuffer("foo");

List<StringBuffer> list = new ArrayList<StringBuffer>();
list.add(sb);

System.out.println(list);   // prints [foo]
sb.append("bar");

System.out.println(list);   // prints [foobar]

sb = null;

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

将对象添加到 ArrayList 并稍后修改 的相关文章

随机推荐

  • Firebase 数据库复制

    我需要来自 2 个 iOS 应用程序 具有不同捆绑名称 中的一个 Firebase 项目数据库的数据 所以 问题是 是否可以在 2 个不同的 Firebase 项目数据库之间配置复制 或者是否可以将 1 个 Firebase 项目 1 个数
  • TIBCO EMS 服务器是否管理重新连接?或者客户呢?

    TIBCO EMS NET 参考指南说 第 134 页 要启用重新连接行为和容错功能 serverURL 参数必须是两个或多个 URL 的逗号分隔列表 在只有一台服务器的情况下 您可以提供该服务器 URL 的两个副本以启用客户端重新连接 例
  • Python 向下舍入到自定义步骤

    我们有一个部分工作的代码和 2 个具有不同类型的自定义步骤的示例 示例 2 Int 有效 而示例 1 则无效 因为它是向上舍入而不是向下舍入 import math def step size to precision ss return
  • 涉及 char 数组的 C 语句的含义

    我正在为一个项目开发一种算法 并且遇到了一些我认为可能有用的代码 然而 当我尝试阅读代码时 我在理解代码中的语句时遇到了一些困难 这是代码 int firstWord MAX WORD SIZE 0 c 0 while word1 c 0
  • 使用 Vanilla Javascript 检测滚动以帮助更改导航 CSS [重复]

    这个问题在这里已经有答案了 我试图检测页面上的滚动是否超过高度为 80 像素的固定顶部导航的 100 像素 计划是 一旦用户的滚动超过上述 100 像素 导航栏将更改背景颜色 我看过很多关于这个主题的教程 但我看到的所有教程都是使用 Jqu
  • 在元素上使用重复的类名?

    我发现有很多框架会在元素上添加新类名之前检查重复的类名 我认为这会降低性能 当元素有重复的类名时会出现问题吗 当使用重复的类名时 它还会应用 CSS 类 而不会发生冲突 div class aa bb cc aa div 可以简单地添加一个
  • 创建计算器(JS)

    我有一条线calc 2 add 3 add 5 res 并需要写一个解决方案 以便我有10因此 我试过这个 class Calc constructor num this num num add a this num a return th
  • 带有自定义滚动条的自动完成 jquery UI 插件

    有人尝试为 jquery UI 自动完成小部件制作自定义滚动条吗 我正在尝试将 jScrollPane jquery 组件与自动完成小部件结合使用 但到目前为止没有取得任何成功 如果有人知道一些带有自定义滚动条的 jquery 自动完成组件
  • 将循环放入 C 宏中

    我正在寻找一种将以下函数结构转换为宏的方法 我知道 这是一个愚蠢且毫无意义的例子 但它说明了这一点 因为我无法给出我的实际源代码 int foo int x int y do x y while x gt y return x y note
  • 使用新数据重新渲染漏斗高图

    我在 MVC3 应用程序中使用 highcharts 并且在数据修改后尝试刷新 但图表不刷新 我绘制的图表如下 function initializeChart chart1 new Highcharts Chart chart rende
  • 使用 Apache FTPClient 检索文件时如何保留修改日期?

    我在用org apache commons net ftp FTPClient用于从 ftp 服务器检索文件 当文件保存在我的计算机上时 保留文件上最后修改的时间戳至关重要 有人对如何解决这个问题有建议吗 这就是我解决它的方法 public
  • 不正确的位图复制/输出

    因此 我在尝试读取任何 24bpp 位图图像并在同一文件夹中重新创建它时 无法准确弄清楚到底出了什么问题 它适用于一张图像 但不适用于我测试过的其他两张图像 从位图中读取时 我使用标头本身中找到的信息 可以说我有三个问题 1 我是否正确读取
  • Maven 通配符匹配部分文件夹名称

    使用 maven clean plugin 我想删除所有以 tmp 开头的文件夹 Maven 通配符可以吗 我努力了
  • 该程序创建了多少个进程,包括初始父进程?

    我试图弄清楚该程序创建了多少个进程 包括初始父进程 正确答案应该是9 但是我不明白为什么答案是9 这9个进程是如何创建的 提前致谢 include
  • 是否有有效的跨域 iframe 高度自动调整器?

    我尝试了一些解决方案但没有成功 我想知道是否有一个解决方案 最好有一个易于遵循的教程 您有三种选择 1 使用iFrame调整器 这是一个简单的库 用于保持 iFrame 的大小适合其内容 它使用 PostMessage 和 Mutation
  • 为应用程序制作密码锁?

    我想为我的应用程序制作一个密码解锁屏幕 但我不确定如何去做 我希望它看起来像苹果设计的版本 即密码锁定设置屏幕 我该如何做这样的事情 一旦输入所有四位数字 代码就会立即与预设密码进行检查 Thanks 刚刚找到一个可以完美复制这一点的项目
  • J2ME 与 Sqlite

    J2me的移动应用程序是否有像SQLite这样的持久存储 如果有 请分享链接或一些示例代码 使简单的 J2ME 应用程序与后端持久数据库进行交互 是的 J2ME 有持久存储 称为 RMS MIDP 2 0 的一部分 看这里简短的教程 RMS
  • 旋转前后的 OpenGL 平移

    以下是代码 摘自http www glprogramming com red chapter03 html 关于如何绘制机器人的手臂和肩膀并通过一些用户输入旋转它们 glPushMatrix glTranslatef 1 0 0 0 0 0
  • 如何使用 OpenCV(模板匹配)检测和匹配标记

    我正在使用在特定区域包含标记的图像 我尝试使用模板匹配来做到这一点 这是 opencv 中定义为 cv MatchTemplate 的方法 我正在使用网络摄像头来检测它们 当前程序正在检测标记 因为我提供了与模板相同的标记 但我找不到一种方
  • 将对象添加到 ArrayList 并稍后修改

    如果我有一个 ArrayList 并向其中添加了一个对象 然后修改了该对象 那么此更改会反映在 ArrayList 中吗 或者当我将对象添加到 ArrayList 时 Java 创建一个副本并将其添加到 ArrayList 中 如果我将此对