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中进行两个集合合并的方法内容讲解到这里就结束了,还有什么问题的话,可以第一时间来联系爱站技术频道小编,小编会帮助大家解决各种技术问题。
上一篇:怎么确定用户输入的日期被保留
下一篇:编程方式检索参数的方法