2
A
回答
2
一個JDBC ResultSet
基本上可以這樣工作,雖然它是一個不同的和更復雜的接口。是的,其原因是它允許處理巨大的數據集,而無需先將它們全部存入內存。另外,一些其他語言(C++和Python,我相信)習慣性地使用迭代器作爲要傳遞的數據項。在Java中,這通常沒有完成,應該避免(除非有令人信服的理由),因爲Java的迭代器缺少一些重要功能,使得它們比集合更有用 - 即無法複製它們或重置它們的位置。
2
迭代器有一個比收藏更簡單的界面,而應該是更容易實現自定義包裝,做事情的方式你想要他們。如上所述,您可以實現它,使next()方法阻塞,直到數據可用爲止。此外,您可以選擇不執行remove()操作,因此不允許調用方更改基礎集合。
相關問題
- 1. 返回一個Backbone集合並迭代 - 而不是一個視圖
- 2. 集合迭代器不返回每個值
- 3. 在Ruby中返回一個迭代器或不透明集合
- 4. Python樣式返回空迭代器而不是無效嗎?
- 5. 迭代器返回的對象,而不是期望的對象
- 6. 迭代RDD並更新可變集合返回空集合
- 7. 查詢返回數組而不是集合模型的集合
- 8. Backbone.js過濾器集合返回一個對象,而不是集合
- 9. 對的集合的迭代器是const?
- 10. 迭代通過數據結構的元素而不是集合
- 11. redshift返回的結果集是否支持重置迭代器?
- 12. PyMongo不會迭代集合
- 13. 通過迭代器而不是容器
- 14. 返回一個迭代器
- 15. 返回迭代器方法
- 16. 返回一個迭代器
- 17. 插入返回迭代器
- 18. 返回一個迭代器
- 19. 迭代器返回列表
- 20. Django的查詢集的迭代器不返回記錄行動
- 21. 迭代器返回隨機字母不能讓它迭代
- 22. 迭代器中的迭代器在樹型集合中的迭代器
- 23. backbone.js迭代集合
- 24. Java迭代集合
- 25. vba - 迭代集合
- 26. JQuery - 集合迭代
- 27. 迭代集合的子集
- 28. 迭代集合的子集
- 29. 如何覆蓋迭代器`next()`返回設置<E>而不是E?
- 30. 紅寶石每個迭代器返回數組而不是布爾
不知道如何使用迭代器來執行'運行時獲取'。迭代器是可以迭代集合的對象,如果數據不在迭代器沒有看到的集合中。 –
我發現了這樣的鏈接(但它沒有更新,也沒有談論最佳實踐)http://www.techrepublic.com/article/deciding-between-iterators-and-lists-for-returned-values-in-的Java/1046675 – Whimusical