java集合的copy

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);

 


版权声明:本文为qq_38836082原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。