java list复制不会对原list有影响怎么写
时间: 2023-08-28 22:07:02 浏览: 102
要实现Java中的List复制而不影响原始List,您可以使用List的构造函数或addAll()方法。下面是两种常用的方法:
方法一:使用List构造函数
```java
List<String> originalList = new ArrayList<>(Arrays.asList("item1", "item2", "item3"));
List<String> newList = new ArrayList<>(originalList);
```
这种方法通过将原始List作为参数传递给新的ArrayList构造函数来创建一个新的List,从而实现了复制。
方法二:使用addAll()方法
```java
List<String> originalList = new ArrayList<>(Arrays.asList("item1", "item2", "item3"));
List<String> newList = new ArrayList<>();
newList.addAll(originalList);
```
这种方法创建了一个新的空ArrayList,并使用addAll()方法将原始List中的所有元素添加到新的List中。
无论您选择哪种方法,通过这样复制List,修改新的List不会对原始List产生影响。
相关问题
java实现list忽略大小写集合复制
可以使用`ArrayList`和`TreeMap`来实现忽略大小写的`List`,并使用`ArrayList`的`addAll`方法来进行`List`复制。
具体实现如下:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
// 创建一个忽略大小写的TreeMap
Map<String, String> map1 = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
map1.put("key1", "value1");
map1.put("key2", "value2");
map1.put("key3", "value3");
// 创建一个忽略大小写的ArrayList
List<String> list1 = new ArrayList<>(map1.values());
// 创建一个新的ArrayList
List<String> list2 = new ArrayList<>();
// 复制list1到list2
list2.addAll(list1);
// 输出list2
System.out.println(list2);
}
}
```
这样,就可以实现忽略大小写的`List`复制了。
java8将list复制,不改变原list的值
可以使用Java8的Stream API和Collectors.toList()方法来复制一个List并返回一个新的List,不改变原始List的值。
例如,假设你有一个名为originalList的List对象,你可以使用以下代码来创建一个新的List对象:
List<Integer> newList = originalList.stream().collect(Collectors.toList());
这个代码将使用Stream API中的collect()方法将原始List转换为新的List,然后返回新的List对象。由于Java中的List是引用类型,所以原始List不会被修改。