一、合并List
在Java中,要合并多个List是非常普遍的需求。合并List的方法有很多,我们可以使用addAll()
方法,也可以使用Java 8中的Stream API等。addAll()
是最常用的方法之一,它可用于将一个List添加到另一个List中。
List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
list1.addAll(list2);
上面的代码会将list2中的所有元素添加到list1中,最终list1中包含4个元素:"Apple","Orange","Banana","Peach"。
除了使用addAll()
方法,还可以使用Java 8中的Stream API来合并List。使用Stream API可以实现更多复杂的任务,例如去除重复项等。
List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
List<String> mergedList = Stream.of(list1, list2)
.flatMap(Collection::stream)
.collect(Collectors.toList());
上面的代码使用Stream API并结合flatMap()
方法,将两个List合并为一个mergedList。
二、两个List合并
有时候我们只需要将两个List合并成一个。除了使用addAll()
方法,我们还可以使用Collections.addAll()
方法进行合并。
List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
List<String> mergedList = new ArrayList<>(list1.size() + list2.size());
Collections.addAll(mergedList, list1.toArray(new String[0]));
Collections.addAll(mergedList, list2.toArray(new String[0]));
上面的代码使用了Collections.addAll()
方法来将两个List合并成一个mergedList。
三、多个List合并成一个
如果需要将多个List合并成一个,add()
方法和addAll()
方法将会非常繁琐。这时,我们可以使用Java 8的Stream API来实现合并。
List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Orange");
List<String> list2 = new ArrayList<>();
list2.add("Banana");
list2.add("Peach");
List<String> list3 = new ArrayList<>();
list3.add("Grapes");
list3.add("Watermelon");
List<String> mergedList = Stream.of(list1, list2, list3)
.flatMap(Collection::stream)
.collect(Collectors.toList());
上面的代码使用Stream API并结合flatMap()
方法,将三个List合并为一个mergedList。
总结
在Java中,合并List操作非常常见,我们可以使用addAll()
方法或Java 8中的Stream API来实现。除此之外,如果需要将多个List合并成一个,我们可以使用Stream API的flatMap()
方法。