国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

java 集合類

2019-11-17 04:07:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
集合Collection接口

--Collection 是任何對(duì)象組,元素各自獨(dú)立,通常擁有相同的套用規(guī)則。Set List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
刪除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
訪問/遍歷集合元素的好辦法是使用Iterator接口(迭代器用于取代Enumeration)

Public interface Iterator{

  Public Boolean hasNext(};

    Public Object next(};

    Public void remove(};

}

一、set
無(wú)重復(fù)、無(wú)序

HashSet-基于散列表的集,加進(jìn)散列表的元素要實(shí)現(xiàn)hashCode()方法以判斷是否為同一個(gè)對(duì)象,無(wú)順序、無(wú)重復(fù)。

LinkedHashSet-在HashSet中加入了鏈表數(shù)據(jù)結(jié)構(gòu),有順序

TreeSet-可以排序,需要實(shí)現(xiàn)Comparable接口,并實(shí)現(xiàn)其compareTo()方法,以排序。

二、List
有重復(fù)、有序

ArrayList(數(shù)組表)- 有重復(fù)、有順序。類似于Vector,都用于縮放數(shù)組維護(hù)集合。區(qū)別:

一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半

LinkedList(鏈表)-是雙向鏈表,適合變更很多的List。

用在FIFO,用addList()加入元素 removeFirst()刪除元素
用在FILO,用addFirst()/removeLast()

ListIterator提供雙向遍歷next() PRevious(),可刪除、替換、增加元素

三、Map

--用于關(guān)鍵字/數(shù)值對(duì),較高的存取性能。不允許重復(fù)的key,但允許重復(fù)的Value。

處理Map的三種集合

關(guān)鍵字集KeySet() 數(shù)值集value()   項(xiàng)目集enrySet()

四個(gè)具體版本

HashMap-散列表的通用映射表,無(wú)序,可在初始化時(shí)設(shè)定其大小,自動(dòng)增長(zhǎng)。

LinkedHashMap-擴(kuò)展HashMap,對(duì)返回集合迭代時(shí),維護(hù)插入順序

WeakHashMap-基于弱引用散列表的映射表,如果不保持映射表外的關(guān)鍵字的引用,則內(nèi)存回收程序會(huì)回收它

TreeMap-基于平衡樹的映射表  


四、collections類,用于同步集合,還能改變集合只讀方式的類
e.g.:

Map mp=new HashMap();

mp=Collections.synchronizedMap(mp); //生成線程安全的映射表

mp=Collections.unmodifiableMap(mp); //生成只讀映射表

五、Hashtable類

是Dictionary結(jié)構(gòu)的具體實(shí)現(xiàn)。  

1、Collection 和 Collections的區(qū)別。

Collections是個(gè)java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。  

Collection是個(gè)java.util下的接口,它是各種集合結(jié)構(gòu)的父接口

2、List, Set, Map是否繼承自Collection接口? List,Set是 Map不是

3、ArrayList和Vector的區(qū)別。
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半

4、HashMap和Hashtable的區(qū)別
一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)


二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的


三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岳普湖县| 尚义县| 沙坪坝区| 思南县| 庆城县| 博罗县| 方山县| 玉林市| 仁怀市| 温宿县| 峨山| 垣曲县| 屏东县| 修武县| 濮阳市| 田阳县| 肥城市| 宿州市| 华蓥市| 新昌县| 宜黄县| 筠连县| 阳城县| 田林县| 大厂| 辛集市| 无棣县| 济阳县| 新龙县| 嵊州市| 通榆县| 迁西县| 乡城县| 龙山县| 北宁市| 肃北| 铁岭市| 太康县| 类乌齐县| 留坝县| 石首市|