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]
在 Java 中如何合并两个数组列表
日期:2020-09-17 00:09:23 来源:oir作者:oir