回答
其實你不能,因爲迭代器不是一個集合。
如果很明顯,你可以做
public static Iterator sortedIterator(Iterator it, Comparator comparator) {
List list = new ArrayList();
while (it.hasNext()) {
list.add(it.next());
}
Collections.sort(list, comparator);
return list.iterator();
}
}
這並沒有真正回答這個問題,OP詢問是否可以對'Iterator'複製到另一個'Collection'進行排序。 – 2013-05-08 07:13:37
使用TreeSet的或TreeMap的。他們是已經排序的集合。
是的,但它們不允許重複,因此它們不是真正替代「List」的。 – 2013-05-08 07:04:11
「a'Map'確實是什麼意思?」 「Map」不允許重複鍵。我想你可以把'List'放到一個'Map'中,並將每個鍵的重複次數作爲一個Integer存儲在值中,然後用它來迭代,但這實際上是黑客使用Map來做一些事情不應該。順便提一句,在Java中,一個'Set'是一個'Map',但是具有'null'值。 – 2013-05-08 07:10:29
@renz:它不允許重複鍵。而且由於它按鍵排序,所以在這種情況下Map與Set相同。 – creinig 2013-05-08 07:10:48
Iterator不是一個容器,它是遍歷容器元素的實用工具。 所以如果你只能訪問迭代器,就沒有辦法改變迭代器的創建者定義的迭代順序。
如果您不能更改原始容器,則必須將迭代器提供的元素收集到新的Collection中並對其進行排序。
(一個好的方法來了解什麼是可能的迭代器是看看在JDK類的源代碼或實現一個自己的迭代器)
- 1. C++字符串迭代器
- 2. 組合字符串數組和迭代器和排序
- 3. swift中的字符串迭代器
- 4. 帶字符串鍵的C#迭代器
- 5. 排序PHP迭代器
- 6. priority_queue,迭代器和排序
- 7. 字符串迭代器不兼容
- 8. 迭代字符串問題
- 9. 迭代JSON字符串
- 10. Python迭代字符串
- 11. 迭代通過字符串?
- 12. 簡化字符串迭代
- 13. 迭代多值字符串
- 14. 似乎無法遍歷鍵是數字字符串的已排序字典。你如何排序字典迭代?
- 15. 迭代C中的字符串,逐字
- 16. 排序字符串
- 17. 映射迭代器,字符串錯誤讀取字符
- 18. 比較字符串迭代器到字符指針
- 19. 將字符移動到字符串無效迭代器中嗎?
- 20. 迭代字典和字符串列表
- 21. 如何根據行中的特定單詞對行字符串(迭代字符串)進行排序?
- 22. 如何迭代Java中的字符串?
- 23. 數組字符串的循環迭代
- 24. 的JavaScript:迭代JSON字符串
- 25. 迭代Java中的字符串列表?
- 26. 迭代字符串中的行嗎?
- 27. 解析和迭代字符串的ArrayList
- 28. 如何迭代python中的字符串?
- 29. 使用each_line的字符串迭代
- 30. char變量的java字符串迭代
怎麼u得到的是'iterator'?從「列表」?如何通過相同的'列表'? – sanbhat 2013-05-08 07:00:31
迭代器是專爲瀏覽集合而設計的對象。雖然有一些方便的功能可以讓你在* current *位置添加或移除元素,但迭代器不應該用於你的情況,因爲它只會使代碼變得不那麼容易理解,並且可能會變慢。 – Dariusz 2013-05-08 07:17:27