Java使用ArrayList.addAll() 方法合并数组列表
addAll() 方法 将给定集合中的所有元素追加到另一个列表末尾。
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayListExample
{
public static void main(String[] args) throws Exception
{
ArrayList<String> listOne = new ArrayList<>(Arrays.asList("a", "b", "c", "d", "f"));
ArrayList<String> listTwo = new ArrayList<>(Arrays.asList("a", "b", "c", "d", "e"));
listOne.addAll(listTwo); //Merge both lists
System.out.println(listOne);
}
}
程序输出:
[a, b, c, d, e, a, b, c, f, g]
合并后的数组列表中包含有重复的元素。 我们可以使用 LinkedHashSet 进行转换。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class ArrayListExample
{
public static void main(String[] args) throws Exception
{
ArrayList<String> listOne = new ArrayList<>(Arrays.asList("a", "b", "c", "d", "e"));
ArrayList<String> listTwo = new ArrayList<>(Arrays.asList("a", "b", "c", "f", "g"));
Set<String> set = new LinkedHashSet<>(listOne);
set.addAll(listTwo);
List<String> combinedList = new ArrayList<>(set);
System.out.println(combinedList);
List<String> listTwoCopy = new ArrayList<>(listTwo);
listTwoCopy.removeAll(listOne);
listOne.addAll(listTwoCopy);
System.out.println(listOne);
}
}
程序输出。
[a, b, c, d, e, f, g] [a, b, c, d, e, f, g]
on it road.com
Java 8 中使用Stream.flatMap() 合并数组列表
Java 8 流 Stream 的 flatMap() 方法可用于获取单个流中两个或者多个列表的元素,然后将流元素收集到一个数组列表中。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ArrayListExample
{
public static void main(String[] args) throws Exception
{
ArrayList<String> listOne = new ArrayList<>(Arrays.asList("a", "b", "c", "d", "e"));
ArrayList<String> listTwo = new ArrayList<>(Arrays.asList("a", "b", "c", "f", "g"));
List<String> combinedList = Stream.of(listOne, listTwo)
.flatMap(x -> x.stream())
.collect(Collectors.toList());
System.out.println(combinedList);
}
}
程序输出。
[a, b, c, d, e, a, b, c, f, g]
日期:2020-09-17 00:09:23 来源:oir作者:oir
