本文目錄一覽:
北大青鳥java培訓:Java集合框架的知識總結?
說明:先從整體介紹了Java集合框架包含的介面和類,然後河南IT培訓總結了集合框架中的一些基本知識和關鍵點,並結合實例進行簡單分析。
1、綜述 所有集合類都位於java.util包下。
集合中只能保存對象(保存對象的引用變數)。
(數組既可以保存基本類型的數據也可以保存對象)。
當我們把一個對象放入集合中後,系統會把所有集合元素都當成Object類的實例進行處理。
從JDK1.5以後,這種狀態得到了改進:可以使用泛型來限制集合里元素的類型,並讓集合記住所有集合元素的類型(參見具體泛型的內容)。
Java的集合類主要由兩個介面派生而出:Collection和Map,Collection和Map是Java集合框架的根介面,這兩個介面又包含了一些介面或實現類。
Set、List和Map可以看做集合的三大類。
List集合是有序集合,集合中的元素可以重複,訪問集合中的元素可以根據元素的索引來訪問。
Set集合是無序集合,集合中的元素不可以重複,訪問集合中的元素只能根據元素本身來訪問(也是不能集合里元素不允許重複的原因)。
Map集合中保存Key-value對形式的元素,訪問時只能根據每項元素的key來訪問其value。
對於Set、List和Map三種集合,最常用的實現類分別是HashSet、ArrayList和HashMap三個實現類。
(並發控制的集合類,以後有空研究下)。
2、Collection介面 Collection介面是List、Set和Queue介面的父介面,同時可以操作這三個介面。
Collection介面定義操作集合元素的具體方法大家可以參考API文檔,這裡通過一個例子來說明Collection的添加元素、刪除元素、返回集合中元素的個數以及清空集合元素的方法。
3、兩種遍歷集合的方法Iterator介面和foreach循環 1、Iterator介面Iterator也是Java集合框架的成員,主要用於遍歷(即迭代訪問)Collection集合中的元素,也稱為迭代器。
什麼是java中的集合框架
集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容:對外的介面、介面的實現和對集合運算的演算法。
介面:即表示集合的抽象數據類型。介面提供了讓我們對集合中所表示的內容進行單獨操作的可能。
實現:也就是集合框架中介面的具體實現。實際它們就是那些可復用的數據結構。
演算法:在一個實現了某個集合框架中的介面的對象身上完成某種有用的計算的方法,例如查找、排序等。這些演算法通常是多態的,因為相同的方法可以在同一個介面被多個類實現時有不同的表現。事實上,演算法是可復用的函數。如果你學過C++,那C++中的標準模版庫(STL)你應該不陌生,它是眾所周知的集合框架的絕好例子。
Java集合類框架的最佳實踐有哪些?
1、根據應用的需要正確選擇要使用的集合的類型對性能非常重要,比如:假如元素的大小是固定的,而且能事先知道,就應該用Array而不是ArrayList。
2、有些集合類允許指定初始容量。因此,如果能估計出存儲的元素的數目,可以設置初始容量來避免重新計算hash值或者是擴容。
為了類型安全,可讀性和健壯性的原因總是要使用泛型。同時,使用泛型還可以避免運行時的ClassCastException。
3、使用JDK提供的不變類(immutableclass)作為Map的鍵可以避免為自己的類實現hashCode()和equals()方法。
4、編程的時候介面優於實現。
5、底層的集合實際上是空的情況下,返回長度是0的集合或者是數組,不要返回null。
JAVA集合框架的總結
1.數組把對象和數字形式的下標聯繫起來。它持有的是類型確定的對象,這樣提取對象的時候就不用再作類型傳遞了。它可以是多維的,也可以持有primitive。但是創建之後它的容量不能改了。
2.Collection持有單個元素,而Map持有相關聯的pair。
3.和數組一樣,List也把數字下標同對象聯繫起來,你可以把數組和List想成有序的容器。List會隨元素的增加自動調整容量。但是List只能持有Objectreference,所以不能存放primitive,而且把Object提取出來之後,還要做類型傳遞。
4.如果要做很多隨機訪問,那麼請用ArrayList,但是如果要再List的中間做很多插入和刪除的話,就應該用LinkedList了。
5.LinkedList能提供隊列,雙向隊列和棧的功能。
6.Map提供的不是對象與數組的關聯,而是對象和對象的關聯。
HashMap看重的是訪問速度,而TreeMap看重鍵的順序,因而它不如HashMap那麼快。而LinkedHashMap則保持對象插入的順序,但是也可以用LRU演算法為它重新排序。
7.Set只接受不重複的對象。HashSet提供了最快的查詢速度。而TreeSet則保持元素有序。LinkedHashSet保持元素的插入順序。
8.沒必要再在新代碼里使用舊類庫留下來的Vector,Hashtable和Stack了。
容器類庫是你每天都會用到的工具,它能使程序更簡潔,更強大並且更高效。
隨著Java的進一步完善,它的功能和易用性也得到提高,我有理由相信Java在計算機語言中所佔的位置也會更加牢固,讓喜愛Java的人更加喜愛它。祝願Java一路順風!
原創文章,作者:QZAJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136944.html