Java中进行两个集合合并的方法

来源:爱站网时间:2022-06-30编辑:网友分享
小编今天来给大家分享下关于Java中进行两个集合合并的方法,如果你刚好对这方面感兴趣的话不妨来看看以下相关资料,希望爱站技术频道小编整理的内容能帮助到你。

问题描述


我有两张地图:

Map students1 = new HashMap();
students1.put("New Yourk", new Student("John"));
students1.put("Canada", new Student("Robert"));

Map students2 = new HashMap();
students2.put("Chicago", new Student("Nick"));
students2.put("New Yourk", new Student("Ann"));

因此,我想得到这个:

{Canada=Robert, New Yourk=[John, Ann], Chicago=Nick}

我可以轻松地做到这一点:

Map> allStudents = new HashMap();

students1.forEach((currentCity, currentStudent) -> {
    allStudents.computeIfPresent(currentCity, (city, studentsInCity) -> {
        studentsInCity.add(currentStudent);
        return studentsInCity;
    });

    allStudents.putIfAbsent(currentCity, new ArrayList() {
        {
            add(currentStudent);
        }
    });
});

// then again for the second list

但是还有其他方法可以合并多个集合(在这种情况下为两个)?是否有类似短的lambda表达式或某些集成的Java库中的方法等的内容?]

思路:


您可以使用addAll进行此操作

public class MergeList {

    public static void main(String args[]) {

        List hundreads = Arrays.asList(1,2,3);
        List thousands = Arrays.asList(4,5,6);

        // merging two list using core Java
        List merged = new ArrayList(hundreads);
        merged.addAll(thousands);

        System.out.println("List 1 : " + hundreads);
        System.out.println("List 2 : " + thousands);
        System.out.println("Merged List : " + merged);


        // another way to merge two list in Java
        // using ListUtils from Apache commons Collection
        merged = ListUtils.union(hundreads, thousands);
        System.out.println("Merged List using Apache Commons Collections: " + merged);

    }

}

输出:清单1:[1、2、3]清单2:[4、5、6]合并清单:[1、2、3、4、5、6]使用Apache Commons集合的合并列表:[1、2、3、4、5、6]

Java中进行两个集合合并的方法内容讲解到这里就结束了,还有什么问题的话,可以第一时间来联系爱站技术频道小编,小编会帮助大家解决各种技术问题。 

上一篇:怎么确定用户输入的日期被保留

下一篇:编程方式检索参数的方法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载