Java将不同的List集合复制到另一个集合常见的方法
作者:德乐懿
在Java中,有时候我们需要将一个List对象的属性值复制到另一个List对象中,使得两个对象的属性值相同,这篇文章主要介绍了Java将不同的List集合复制到另一个集合常见的方法,需要的朋友可以参考下
在Java中,你可以使用多种方法将一个或多个List
集合的元素复制到另一个List
集合中。
以下是一些常见的方法:
使用addAll方法:
如果要将一个List
的所有元素添加到另一个List
的末尾,可以使用addAll
方法。
List<String> list1 = Arrays.asList("a", "b", "c"); List<String> list2 = new ArrayList<>(); list2.addAll(list1); // list2 现在包含 "a", "b", "c"
使用addAll方法添加多个List:
如果要将多个List
的元素都添加到同一个List
中,可以多次调用addAll
方法。
List<String> list1 = Arrays.asList("a", "b", "c"); List<String> list2 = Arrays.asList("d", "e", "f"); List<String> combinedList = new ArrayList<>(); combinedList.addAll(list1); combinedList.addAll(list2); // combinedList 现在包含 "a", "b", "c", "d", "e", "f"
使用Java 8的Stream API(如果你想要合并并处理元素):
虽然Stream API通常用于处理集合中的元素,但你也可以用它来合并List
。
List<String> list1 = Arrays.asList("a", "b", "c"); List<String> list2 = Arrays.asList("d", "e", "f"); List<String> combinedList = Stream.concat(list1.stream(), list2.stream()) .collect(Collectors.toList()); // combinedList 现在包含 "a", "b", "c", "d", "e", "f"
使用循环:
虽然这种方法不如上面的方法优雅,但你也可以使用循环来逐个添加元素。
List<String> list1 = Arrays.asList("a", "b", "c"); List<String> list2 = new ArrayList<>(); for (String s : list1) { list2.add(s); } // list2 现在包含 "a", "b", "c"
使用Collections.copy
(注意:这种方法只适用于具有相同大小的列表,并且目标列表必须预先分配好足够的空间):
虽然Collections.copy
通常用于复制数组的内容到列表中,或者复制列表的一部分到另一个列表,但它不适合用于合并两个不同大小的列表。
List<String> list1 = Arrays.asList("a", "b", "c"); List<String> list2 = new ArrayList<>(list1.size()); // 预先分配空间 Collections.copy(list2, list1.toArray(new String[0])); // 注意:这种方法通常不用于合并列表 // list2 现在包含 "a", "b", "c",但这并不是合并两个列表的标准用法
在实际应用中,最常见的方法是使用addAll
方法或Java 8的Stream API来合并列表。
使用fastjson ,针对不同的对象实体:
List<Entity1> list1 = new ArrayList<>(new Entity1(),new Entity2()) List<Entity2> list2 = new ArrayList<>(list1.size()); // 预先分配空间 List<Entity2> list3 = JSON.parseArray(JSON.toJSONString(list1),Entity2.class);
//JSON.toJSONString(list1)先将list转成字符串数组,然后再使用JSON.parseArray()转成list对象数组
总结
到此这篇关于Java将不同的List集合复制到另一个集合常见的方法的文章就介绍到这了,更多相关Java不同List集合复制另一个集合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!