成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細介紹java中的集合框架

開發(fā) 后端
本文介紹的是JAVA中的集合框架,希望對你有幫助,一起來看吧!

集合框架是為表示和操作集合而規(guī)定的一種統(tǒng)一的標準的體系結構。任何集合框架都包含三大塊內容:對外的接口、接口的實現和對集合運算的算法。

java集合框架

1. 什么是框架:類庫的集合

2.集合框架:用來表示和操作的統(tǒng)一的架構,包含了實現集合的接口與類

3.集合:存放數據的容器

集合框架包含了兩部分:一部分是接口,一部分是類

4.為什么會出現接口:因為集合框架中的很多類 功能是相似的【所以用接口來規(guī)范類】

主要結構圖:

結構圖

注:在"集合框架"中,接口 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 方法的協定上加了一些其他約定,更加規(guī)范了 Collection 接口中指定的約定。為方便起見,這里也包括了其他繼承方法的聲明

D.List 接口提供了 4 種對列表元素進行定位(索引)訪問方法。列表(像 Java 數組一樣)是基于 0 的。注意,這些操作可能在和某些實現(例如 LinkedList 類)的索引值成比例的時間內執(zhí)行。因此,如果調用方不知道實現,那么在列表元素上迭代通常優(yōu)于用索引遍歷列表

E. 除了具有Collection接口必備的iterator()方法外,List還提供一個listIterator()方法,返回一個 ListIterator接口,和標準的Iterator接口相比,ListIterator多了一些add()之類的方法,允許添加,刪除,設定元素,還能向前或向后遍歷。

至于 List提供如下方法:

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 元素提供了統(tǒng)一的命名方法。這些操作允許將鏈接列表用作堆棧、隊列或雙端隊列 (deque)。此類實現 Queue 接口,為 add、poll 等提供先進先出隊列操作。其他堆棧和雙端隊列操作可以根據標準列表操作方便地進行再次強制轉換。雖然它們可能比等效列表操作運行稍快,但是將其包括在這里主要是出于方便考慮.

希望通過以上內容的介紹,能夠給你帶來幫助。

責任編輯:于鐵 來源: 互聯網
相關推薦

2023-10-09 07:57:14

JavaJCF

2011-07-21 17:02:48

JAVA模式框架

2009-06-19 14:49:43

Spring框架

2009-11-09 14:15:17

WCF集合類型

2011-07-11 15:02:54

枚舉

2011-07-21 15:44:33

Java內部類

2011-07-05 17:29:56

2019-07-22 09:59:20

Java框架集合

2010-03-18 15:47:07

Java創(chuàng)建線程

2011-06-08 15:45:41

字符串JAVA

2009-12-15 18:39:36

Ruby Active

2011-07-22 16:50:05

JAVA

2011-07-04 10:32:37

JAVA

2023-11-02 08:10:13

框架Spring程序事件

2011-06-21 14:25:44

JavaScriptcookie

2011-07-08 16:54:39

JspCookies

2009-06-30 14:01:00

Java集合框架Java數組排序

2009-06-17 16:01:28

2011-07-08 11:19:51

jspaction

2011-07-13 15:47:18

MFC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人欧美日韩一区二区三区 | 亚洲精品久久嫩草网站秘色 | 黄网免费看 | 国产9 9在线 | 中文 | 99tv成人影院| 狠狠亚洲 | 午夜精品一区 | 有码在线 | 99精品视频免费观看 | 国产精品亚洲成在人线 | 欧美黄色一区 | 欧美一级二级视频 | 亚洲不卡在线视频 | 污视频免费在线观看 | 99九九视频| 婷婷免费在线 | 久久久久综合 | 福利色导航 | 99久久免费精品国产免费高清 | 国产在线视频一区 | 欧美一区二区三区久久精品 | 日韩欧美一级片 | 波多野结衣先锋影音 | 中文字幕国产一区 | 亚洲一级淫片 | 91久久夜色精品国产网站 | 一区二区三区观看视频 | 精品免费在线 | 国产一区二区日韩 | 国产一区二区三区高清 | 久久伊| 日本一级淫片免费啪啪3 | 欧美一级视频 | 午夜精品一区二区三区免费视频 | 日韩在线国产 | 成人一区二区三区在线观看 | 亚洲精品在线视频 | 日韩二区三区 | 欧美日韩国产一区二区三区 | 亚洲精品久久久一区二区三区 | 一区二区三区四区国产 |