java list赋值
时间: 2024-01-15 22:18:55 浏览: 91
在Java中,使用等于号直接赋值一个List给另一个List是不可行的。这是因为在Java中,List是一个引用类型,使用等于号赋值只是将引用复制给了另一个变量,而不是创建一个新的List对象。这意味着两个变量指向同一个List对象,对其中一个List进行修改会影响到另一个List。
下面是一个示例,演示了直接使用等于号赋值的问题:
```java
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = list1;
list2.set(0, 4);
System.out.println(list1); // 输出 [4, 2, 3]
System.out.println(list2); // 输出 [4, 2, 3]
```
从上面的示例可以看出,当我们修改list2时,list1也发生了改变。这是因为list1和list2指向同一个List对象。
如果我们想要创建一个新的List对象并将其赋值给另一个List,可以使用List的构造函数或者使用addAll()方法。下面是两种方法的示例:
方法一:使用List的构造函数
```java
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>(list1);
list2.set(0, 4);
System.out.println(list1); // 输出 [1, 2, 3]
System.out.println(list2); // 输出 [4, 2, 3]
```
方法二:使用addAll()方法
```java
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.addAll(list1);
list2.set(0, 4);
System.out.println(list1); // 输出 [1, 2, 3]
System.out.println(list2); // 输出 [4, 2, 3]
```
阅读全文