Java集合小结
集合小結(jié)
數(shù)組將數(shù)字索引與對象相關(guān)聯(lián)。它保存類型明確的對象,因此在查找對象時不必對結(jié)果做類型轉(zhuǎn)換。它可以是多維的,可以保存基本類型的數(shù)據(jù)。雖然可以在運行時創(chuàng)建數(shù)組,但是一旦創(chuàng)建數(shù)組,就無法更改數(shù)組的大小。
Collection?保存單一的元素,而?Map?包含相關(guān)聯(lián)的鍵值對。使用 Java 泛型,可以指定集合中保存的對象的類型,因此不能將錯誤類型的對象放入集合中,并且在從集合中獲取元素時,不必進行類型轉(zhuǎn)換。各種?Collection?和各種?Map?都可以在你向其中添加更多的元素時,自動調(diào)整其尺寸大小。集合不能保存基本類型,但自動裝箱機制會負責執(zhí)行基本類型和集合中保存的包裝類型之間的雙向轉(zhuǎn)換。
像數(shù)組一樣,?List?也將數(shù)字索引與對象相關(guān)聯(lián),因此,數(shù)組和?List?都是有序集合。
如果要執(zhí)行大量的隨機訪問,則使用?ArrayList?,如果要經(jīng)常從表中間插入或刪除元素,則應該使用?LinkedList?。
隊列和堆棧的行為是通過?LinkedList?提供的。
Map?是一種將對象(而非數(shù)字)與對象相關(guān)聯(lián)的設(shè)計。?HashMap?專為快速訪問而設(shè)計,而?TreeMap?保持鍵始終處于排序狀態(tài),所以沒有?HashMap?快。?LinkedHashMap?按插入順序保存其元素,但使用散列提供快速訪問的能力。
Set?不接受重復元素。?HashSet?提供最快的查詢速度,而?TreeSet?保持元素處于排序狀態(tài)。?LinkedHashSet?按插入順序保存其元素,但使用散列提供快速訪問的能力。
簡單的集合分類
- 虛線框表示接口,實線框表示普通的(具體的)類。帶有空心箭頭的虛線表示特定的類實現(xiàn)了一個接口。實心箭頭表示某個類可以生成箭頭指向的類的對象。例如,任何?Collection?都可以生成?Iterator?,?List?可以生成?ListIterator?(也能生成普通的?Iterator?,因為?List?繼承自?Collection?)
- 除?TreeSet?之外的所有?Set?都具有與?Collection?完全相同的接口。List?和?Collection?存在著明顯的不同,盡管?List?所要求的方法都在?Collection?中。另一方面,在?Queue?接口中的方法是獨立的,在創(chuàng)建具有?Queue?功能的實現(xiàn)時,不需要使用?Collection?方法。最后,?Map?和?Collection?之間唯一的交集是?Map?可以使用?entrySet()?和?values()?方法來產(chǎn)生?Collection
?
?
?
?
總結(jié)
- 上一篇: Redis整合springboot实现消
- 下一篇: Java调用百度OCR文字识别的接口