【发布时间】:2021-09-15 11:06:13
【问题描述】:
我正在尝试根据它们的大小附加两个列表。前面有更大尺寸的列表。
我很少有这样的清单。
List<Pair<Double, String>> masterList = new ArrayList<>();
这是我首先尝试的有效 Java 代码 - 带有一个简单的 if else 循环:
if (listOne.size() >= listTwo.size()){
masterList.addAll(listOne);
masterList.addAll(listTwo);
} else {
masterList.addAll(listTwo);
masterList.addAll(listOne);
}
masterList.addAll(otherList); // and at the end all other list can be added without any condition
我对 Java 还很陌生,所以我正在研究它并遇到了 Comparators 和 Lambda。因此,我尝试将其用于我的代码,如下所示:
List<Pair<Double, String>> masterList = Stream.concat(listOne.stream(), listTwo.stream())
.filter(Comparator.comparingInt(List::size))
.collect(Collectors.toList())
但我无法获得适当的结果。 谁能指出我的错误,我还在努力学习。
【问题讨论】:
-
在这里使用流似乎完全没有必要,你有什么理由吗?
-
主要是从学习的角度。此外,使用
Stream,可以将用例扩展到更多数量的List
标签: java list arraylist append java-stream