java拷贝集合的方法有很多种,常用的比较简单的做法有两种:
直接使用集合构造方法实现浅拷贝:(这种方法只是保证list和listCopy的引用不一样,但是集合元素的引用时一样的)
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
List<String> listCopy = new ArrayList<>(list);//构造方法实现拷贝
使用集合工具类Collections的copy方法可以实现深拷贝将所有元素都拷贝一份:
List<String> list = new ArrayList<>(10);
list.add("abc");
list.add("def");
//注意Collections的copy方法会首先去判断src和dest的size,所以使用时应当声明一个有初始长度的集合去接收拷贝
List<String> list1 = new ArrayList<>(Arrays.asList(new String[list.size()]));
Collections.copy(list1, list);
list.set(0, "aaa");
list.forEach(System.out::println);
System.out.println("----");
list1.forEach(System.out::println);