您好,登錄后才能下訂單哦!
本篇內容介紹了“java中的集合框架有什么作用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容:對外的接口、接口的實現和對集合運算的算法。
java集合框架:
1. 什么是框架:類庫的集合
2.集合框架:用來表示和操作的統一的架構,包含了實現集合的接口與類
3.集合:存放數據的容器
集合框架包含了兩部分:一部分是接口,一部分是類
4.為什么會出現接口:因為集合框架中的很多類 功能是相似的【所以用接口來規范類】
主要結構圖:
注:在"集合框架"中,接口 Map 和 Collection 在層次結構沒有任何親緣關系,它們是截然不同的。
不要簡單的認為集合類機會就這些,jdk中集合類有很多這些不過是我們經常用到的而已
Collection、List、Set、Queue和Map都是接口(Interface),不是具體的類實現。
一.List[public interface List<E>extends Collection<E>]:
A.有序的集合接口,可以對列表中每個元素的插入位置進行精確地控制。用戶可以根據元素的整數索引(在列表中的位置)訪問元素,并搜索列表中的元素。
B.與 set 不同,列表通常允許重復的元素。更正式地說,列表通常允許元素e1和元素e2滿足e1.equals(e2).并且如果列表本身允許null 元素的話,通常它們允許多個 null 元素。難免有人希望通過在用戶嘗試插入重復元素時拋出運行時異常的方法來禁止重復的列表
C.List 接口在 iterator、add、remove、equals 和 hashCode 方法的協定上加了一些其他約定,更加規范了 Collection 接口中指定的約定。為方便起見,這里也包括了其他繼承方法的聲明
D.List 接口提供了 4 種對列表元素進行定位(索引)訪問方法。列表(像 Java 數組一樣)是基于 0 的。注意,這些操作可能在和某些實現(例如 LinkedList 類)的索引值成比例的時間內執行。因此,如果調用方不知道實現,那么在列表元素上迭代通常優于用索引遍歷列表
E. 除了具有Collection接口必備的iterator()方法外,List還提供一個listIterator()方法,返回一個 ListIterator接口,和標準的Iterator接口相比,ListIterator多了一些add()之類的方法,允許添加,刪除,設定元素,還能向前或向后遍歷。
至于 List提供如下方法:
List接口實現類很多:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector 一般情況下主要用到的是ArrayList,和LinkedList,其他的類并不是說沒用
ArrayList
ArrayList允許所有元素包括null。ArrayList沒有同步
理解一:ArrayList 使用一個內置的數組來存儲元素,這個數組的起始容量是10.當數組需要增長時,新的容量按如下公式獲得:新容量=(舊容量*3)/2+1,也就是說每一次容量大概會增長50%。這就意味著,如果你有一個包含大量元素的ArrayList對象,那么最終將有很大的空間會被浪費掉,這個浪費是由 ArrayList的工作方式本身造成的。如果沒有足夠的空間來存放新的元素,數組將不得不被重新進行分配以便能夠增加新的元素。
對數組進行重新分配,將會導致性能急劇下降。如果我們知道一個ArrayList將會有多少個元素,我們可以通過構造方法來指定容量。我們還可以通過trimToSize方法在 ArrayList分配完畢之后去掉浪費掉的空間。
理解二:ArrayList是用數組實現的,它不是真正的鏈表,在初始化的時候它先對數組設置一個初始容量,當數組空間不夠的時候,它會重新構建一個容量更大的數組,然后把先前的元素拷貝進去
不管是一還是二暫且不管他存放元素的方式。***一點可以確認他使用內置的數組
LinkedList
List接口的鏈接列表實現。實現所有可選的列表操作,并且允許所有元素(包括 null)。除了實現 List 接口外,
LinkedList 類還為在列表的開頭及結尾 get、remove 和 insert 元素提供了統一的命名方法。這些操作允許將鏈接列表用作堆棧、隊列或雙端隊列 (deque)。此類實現 Queue 接口,為 add、poll 等提供先進先出隊列操作。其他堆棧和雙端隊列操作可以根據標準列表操作方便地進行再次強制轉換。雖然它們可能比等效列表操作運行稍快,但是將其包括在這里主要是出于方便考慮.
“java中的集合框架有什么作用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。