我一直在这个谷歌搜索,我发现this answer。番石榴中有一种Iterables.concat。但是这返回Iterable
,我想要做的下一件事是排序结果。 Collections.sort
需要List
,而不是Iterable
,因此我必须将Iterable
转换为List
作为下一步。有没有更直接的方法来结合两个List
s然后对结果进行排序?如何连接两个列表来创建第三个?
回答
List<Something> list = Lists.newArrayList(Iterables.concat(...));
Collections.sort(list);
可能是这里的解决方案。
更快,可能更快:'Ordering.natural()。sortedCopy(Iterables.concat(...))' –
@LouisWasserman这是一个聪明的解决方案,谢谢 –
列表中有addAll(Collection
)方法,我认为这对您的目的很有用。您可以复制第一个列表,做出这样的事情:
copyList1.addAll(list2);
您可以使用
List<Something> list1;
List<Something> list2;
list1.addAll(list2);
Collections.sort(list1);
(假设你的列表是Comparable
的List)
如果你不想修改list1
,你可以使用:
List<Something> list3 = new ArrayList<>();
Collections.copy(list3, list1);
list3.addAll(list2);
Collections.sort(list3);
如果一个SortedSet也是好的作为返回类型(我觉得这是一个你真的想在大多数情况下),你可以这样做:
FluentIterable.from(list1).concat(list2).toSortedSet(Ordering.natural());
仅供参考,还有'toSortedList(Ordering.natural() )'。 – ColinD
在Java 8(替换字符串与任何类型的列表中包含):
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()).collect(Collectors.<String>toList());
这将连接你的两个列表来创建一个新的第三个列表。然后,您可以对它进行排序为您在您的文章使用Collections.sort
提到:
Collections.sort(newList);
在Java 8:
List<E> sorted = Stream.concat(l1.stream(), l2.stream())
.sorted()
.collect(Collectors.toList());
下应该用JAVA 8个流API
class T {
@Getter private int sortingProperty;
}
List<T> list3 Stream.of(list1OfT,list2OfT)
.sorted(Comparing(T::getSortingProperty))
.collect(toList());
- 1. 在两个列表中连接字符串以创建第三个列表
- 2. 如何连接两个表和第三个表显示结果
- 3. 通过组合两个列表中的值来创建第三个列表
- 4. 如何通过组合每个第三列来创建表?
- 5. 如何连接两个文件的内容以创建第三个文件?
- 6. 如何留下两个表外连接第三台
- 7. SQL - 第三个表连接到两个表,但第三个表中的列条件不同
- 8. 使用第三个表连接两个表(SQL)
- 9. 在第三个表连接两个表的数据
- 10. 从两个选择行连接表不是在第三个表
- 11. 完全外连接两个不同类的列表到第三类的第三个列表
- 12. Prolog - 从两个已排序的列表中创建第三个排序列表
- 13. 从第三个表连接内部连接的两个表的SQL计数
- 14. 如何连接两个数据帧的列表,获取第三个链接的数据帧列表?
- 15. 使用两个表中的行创建第三个表
- 16. 连接每三个列表
- 17. 如何将一个mysql表中的两行连接到第三个表中
- 18. 使用熊猫来连接两个数值来创建新列?
- 19. mysql:连接两个表共用两个字段得到第三个表
- 20. 如何连接两个表并映射三列
- 21. 如何连接三个表,同时从两个表中统计
- 22. 连接两个表具有三表
- 23. 使用第三张表连接两个laravel表
- 24. mysql根据第三个ID创建两个表的视图
- 25. 如何在CakePHP中的第三个n..n(hasAndBelongsToMany)关系中连接两个表?
- 26. 来自2个表的SQL连接,从第三个连接的数据分组
- 27. 如果主键与第三个表匹配并按第三个表排序,我将如何连接2个表?
- 28. 如何连接两个Snoc列表?
- 29. 如何通过比较两个其他列表与字符串匹配来构建第三个列表。
- 30. 如何连接来自两列的文本并将结果放在第三列
'Lists.newArrayList(Iterables.concat(...))'工作? –
@RC。我会接受,作为回答 –
添加为答案(不知道我明白了这个问题,所以我评论) –