我一直在這個谷歌搜索,我發現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。我會接受,作爲回答 –
添加爲答案(不知道我明白了這個問題,所以我評論) –