java list 赋值 list
时间: 2023-11-27 17:03:38 浏览: 138
Java list 操作
Java中的List是一个接口,它有多个实现类,如ArrayList、LinkedList等。在Java中,List是一个引用类型,因此在进行赋值操作时需要注意一些细节。
如果直接将一个List赋值给另一个List,那么它们将指向同一个对象,即它们指向同一个内存地址,因此对其中一个List的修改会影响到另一个List。例如,引用中的代码,list2 = list1;语句将list1的引用赋值给了list2,因此它们指向同一个对象,即它们指向同一个内存地址。因此,当对list1进行修改时,list2也会发生相应的变化。
如果需要将一个List的值复制到另一个List中,可以使用构造函数或addAll()方法。例如,引用中的代码,b = new ArrayList<Integer>(a);语句使用ArrayList的构造函数将a中的元素复制到b中,因此a和b指向不同的对象,它们指向不同的内存地址。因此,当对a进行修改时,b不会发生相应的变化。
另外,需要注意的是,在使用addAll()方法时,如果将一个List添加到另一个List中,那么它们仍然指向同一个对象,即它们指向同一个内存地址。
下面是两种Java List赋值的例子:
1.直接赋值
```java
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
list2 = list1; // 将list1的引用赋值给list2
System.out.println(list2.toString()); // 输出:[a, b, c]
list1.add("d");
System.out.println(list2.toString()); // 输出:[a, b, c, d]
```
2.使用构造函数
```java
List<Integer> a = new ArrayList<Integer>(){{add(1);add(2);add(3);}};
List<Integer> b = new ArrayList<Integer>(a); // 使用ArrayList的构造函数将a中的元素复制到b中
a.add(4);
System.out.println(a.toString()); // 输出:[1, 2, 3, 4]
System.out.println(b.toString()); // 输出:[1, 2, 3]
```
阅读全文