`

java中ArrayList的addAll方法添加引用类型对象时值会修改

    博客分类:
  • java
阅读更多
class A{
		String tt="sss";
	}
	
	@Test
	public void test4() throws FileNotFoundException {
		try {	
			ArrayList<A> a = new ArrayList<A>();
			a.add(new A());
			a.add(new A());
			
			ArrayList<A> b = new ArrayList<A>();
			b.add(new A());
			b.add(new A());
			a.addAll(b);
			
			b.get(0).tt="dd";

			System.out.println("b.size:"+b.size());
			for(A ssa:a){
				System.out.println("a list:"+ssa.tt);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 输出的结果为:

b.size:2

a list:sss

a list:sss

a list:dd

a list:sss

说明addAll方法只是拷贝了对象的地址,并没有完全复制一份对象

分享到:
评论

相关推荐

    Java中ArrayList的使用方法以及与vector的对比

    这个示例中,我们首先创建了一个 ArrayList 对象,然后使用 `add` 方法将 10 个整数元素添加到 ArrayList 中,然后使用 `remove` 方法删除第 6 个元素,最后使用 `add` 方法再添加 3 个元素。 二、ArrayList 的重要...

    jni操作arraylist对象

    首先,我们需要理解ArrayList在Java中的本质。ArrayList是Java集合框架中的一个重要类,它实现了List接口,用于存储可变大小的有序对象列表。ArrayList通过数组来存储元素,因此可以快速访问任意位置的元素,但插入...

    Java中ArrayList的removeAll方法详解

    ArrayList的removeAll方法是一个常用的集合操作方法,该方法可以从一个ArrayList中删除所有在另外一个集合中的元素。但是,在实际开发过程中,removeAll方法的使用需要 thận重,因为它可能会导致性能问题。 1. ...

    java中ArrayList的用法

    ### Java中ArrayList的用法详解 #### 一、概述 `ArrayList`是Java集合框架中的一个动态数组类,它能够存储任意类型的对象,并且在运行时动态调整其大小。这使得`ArrayList`成为处理数量未知的数据集合时的一个非常...

    Java中ArrayList类的用法.docx

    ### Java中ArrayList类的用法详解 #### 一、ArrayList的概念 `ArrayList`是Java集合框架中的一个重要组成部分,它提供了一种类似于数组的数据结构,但与传统的数组相比,`ArrayList`具有更多的灵活性。它可以动态地...

    java关键字ArrayList详解

    - 添加元素:ArrayList提供了add()方法在指定位置或末尾添加元素,以及addAll()方法添加一个集合的所有元素。 - 删除元素:remove()方法可以按索引删除元素,removeAll()方法用于移除集合中的所有匹配项。 - 修改...

    java中ArrayList 、LinkList区别.doc

    在Java编程语言中,ArrayList和LinkedList都是集合框架中两种重要的数据结构,它们分别基于不同的底层实现,具有不同的特性和性能特点。以下是对这两个类的详细分析: 1. **ArrayList 实现**: - ArrayList 实现了...

    Java中ArrayList的使用方法简单介绍

    总结来说,Java中ArrayList的去重可以通过HashSet转换实现,或者使用循环比较并移除重复元素的方式。在实际应用中,根据具体的需求(如是否保持原有顺序、性能要求等)选择合适的方法。同时,理解不同数据结构如...

    ArrayList数据批量添加数据

    `ArrayList`是.NET框架中的一个集合类,它允许存储任意类型的对象,并且可以根据需要动态地调整大小。它提供了一系列的方法来添加、删除和检索元素,如`Add()`、`Remove()`、`Contains()`等。 #### 二、批量添加...

    java中对ArrayList进行排序

    java中对ArrayList进行排序的方法参考

    Java中ArrayList类的用法知识.pdf

    Java中的ArrayList类是Java集合框架的一部分,它是List接口的一个实现,主要用于存储可变大小的有序对象集合。ArrayList基于数组实现,允许动态地增加或减少元素,提供了丰富的操作方法,适用于需要频繁增删元素的...

    Java中ArrayList去除重复元素(包括字符串和自定义对象)

    在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何从ArrayList中去除重复元素,包括字符串和自定义对象。 ...

    试谈Java中ArrayList类的使用.pdf

    ArrayList 类提供了多种方法来操作数组中的元素,包括添加、删除、获取、设置、查找等。 构造方法 ArrayList 类提供了两个构造方法,一个是 `public ArrayList(int initialCapacity)`,它可以指定 ArrayList 的...

    Java中ArrayList类的用法.pdf

    Java中的ArrayList类是Java集合框架的一部分,它是基于数组实现的可变大小的列表。ArrayList类在编程中扮演着重要角色,因为它提供了动态增加和减少元素的能力,这比传统的固定大小的数组更加灵活。ArrayList实现了...

    ASP .NET - ArrayList对象

    ASP.NET中的ArrayList对象是.NET框架中System.Collections命名空间下的一个类,它提供了一个动态大小的数组,用于存储各种类型的数据。ArrayList对象是一个非常基础且灵活的集合类,它允许程序员在运行时添加、删除...

    Java基础-ArrayList方法全解(上).pdf

    在Java中,ArrayList实现了List接口,因此它支持有序的元素序列,并且允许有重复元素。本文将深入解析ArrayList的主要方法,帮助你更好地理解和运用这些方法。 1. 构造方法 - ArrayList(): 这是最基本的构造器,...

    Java员工管理系统,ArrayList存储

    在Java中,ArrayList类位于`java.util`包下,它是List接口的一个具体实现。ArrayList底层使用数组进行数据存储,因此可以支持快速的随机访问。同时,ArrayList也支持动态扩容,当添加元素时,如果数组容量不足,会...

    java中List对象列表实现去重或取出及排序的方法

    Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...

    Java中ArrayList和Vector的区别共2页.p

    在Java编程语言中,ArrayList和Vector是两种常用的动态数组实现,它们都属于集合框架的一部分,用于存储和操作对象。虽然它们在用途上相似,但在性能、线程安全性和同步机制等方面存在显著区别。以下是关于ArrayList...

Global site tag (gtag.js) - Google Analytics