java面试题:集合_Java:选择正确的集合
java面試題:集合
這是在您的應(yīng)用程序中選擇Set , List或Map的正確實(shí)現(xiàn)的快速指南。最好的通用或“主要”實(shí)現(xiàn)可能是ArrayList,LinkedHashMap和LinkedHashSet。 它們的整體性能更好,除非您需要其他實(shí)現(xiàn)提供的特殊功能,否則應(yīng)使用它們。 該特殊功能通常是排序或排序。
在這里,“排序”是指迭代器返回的項(xiàng)目的順序,“排序”是指根據(jù)Comparable或Comparator對項(xiàng)目進(jìn)行排序。
| 接口 | 有重復(fù)嗎? | 實(shí)作 | 歷史的 | ||||
| 組 | 沒有 | 哈希集 | … | LinkedHashSet * | … | 樹集 | … |
| 清單 | 是 | … | ArrayList * | … | 鏈表 | … | 向量 , 堆棧 |
| 地圖 | 沒有重復(fù)的鍵 | 哈希圖 | … | LinkedHashMap * | … | 樹狀圖 | 哈希表 , 屬性 |
非主要實(shí)現(xiàn)的主要特征:
- HashMap的性能比LinkedHashMap略好
- HashSet的性能比LinkedHashSet略好
- TreeSet已排序和排序,但速度較慢
- TreeMap已排序和排序,但速度較慢
- LinkedList可以快速添加到列表的開頭,并且可以通過迭代從內(nèi)部快速刪除
以上實(shí)現(xiàn)的迭代順序:
- HashSet – 未定義
- HashMap – 未定義
- LinkedHashSet –插入順序
- LinkedHashMap –鍵的插入順序(默認(rèn)情況下)或“訪問順序”
- ArrayList –插入順序
- LinkedList –插入順序
- TreeSet –按照可比/比較器的升序
- TreeMap –根據(jù)可比/比較器,鍵的升序
對于LinkedHashSet和LinkedHashMap,項(xiàng)目的重新插入不會(huì)影響插入順序。
在地圖或集合中使用時(shí),這些項(xiàng)目不得更改狀態(tài)(因此,建議這些項(xiàng)目是不可變的對象):
- 地圖鍵
- 套裝中的物品
排序要求:
- 存儲(chǔ)的項(xiàng)目實(shí)現(xiàn)可比性
- 定義存儲(chǔ)對象的比較器
要保留在ORDER BY子句中指定的ResultSet的順序,請將記錄插入到List或LinkedHashMap中。
參考:在“ 建筑師日記”博客中,從我們的JCG合作伙伴 Sanjeev Kumar 選擇了正確的收藏 。
翻譯自: https://www.javacodegeeks.com/2012/09/java-choosing-right-collection.html
java面試題:集合
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java面试题:集合_Java:选择正确的集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为搜索设置(华为搜索设置选项内容无法删
- 下一篇: 360民间电脑专家加入(360电脑专家咨