java - ArrayList 对象

标签 java

需要一些输入:

假设我有 N 个 ArrayList 并且在每个中我都添加了 foo() 对象。

Foo foo = new Foo()

A.add(foo);

B.add(foo);

N.add(foo);

现在对任何一个 foo() 对象所做的修改都会反射(reflect)在所有其他数组列表中吗?

  1. 如果是,为什么?和

  2. 是否也可以使用任何其他集合(如 Vector 等...)实现此行为?

  3. 如果我将 foo 设置为 null,它会反射(reflect)在所有数组列表中吗?

最佳答案

  1. 是的,因为所有列表只包含对相同对象的引用
  2. 是的,所有的集合都是这样
  3. 不能,因为您只能将引用设置为 null,并且每个列表都有引用的副本。

关于java - ArrayList 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9378000/

相关文章:

java - 一次从 Eclipse 运行两个 Java 程序?

java多线程访问原始变量

java - 模型映射器计算

java - JDialog/OptionPane 带有带图标的大自定义按钮

java - 没有外键但有反向外键的 hibernate 多对一关系

java - 从相同对象的两个列表中仅查找不匹配的 ID

java - 通过交换染色体重组创建新的基因型

java - 重命名 JAX-WS 项目 - 现在找不到 WSDL

java - 当 OneToOne 关系与 MapsId 映射时,findAll() 方法不返回最近插入的记录

java - 基于注释和基于 xml 的事务定义优先级