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

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

集合詳解

2019-11-09 16:44:32
字體:
供稿:網(wǎng)友

集合:

特點(diǎn):存儲對象;長度可變;存儲對象的類型可不同;

Collection

List:有序的;元素可重復(fù),有索引

(add(index, element)、add(index, Collection)、remove(index)、 set(index,element)、get(index)、subList(from, to)、listIterator())

ArrayList:底層是數(shù)組結(jié)構(gòu),查詢快,增刪慢,不同步。LinkedList:底層是鏈表結(jié)構(gòu),增刪快,查詢慢,不同步 addFist();addLast() getFirst();getLast() removeFirst();removeLast() 獲取并刪除元素,無元素將拋異常:NoSuchElementException 替代的方法(JDK1.6): offerFirst();offerLast(); peekFirst();peekLast();無元素返回null pollFirst();pollLast();刪除并返回此元素,無元素返回null Vector:底層是數(shù)組結(jié)構(gòu),線程同步,被ArrayList取代了 注:了對于判斷是否存在,以及刪除等操作,以依賴的方法是元素的hashCode和equals方法 ArrayList判斷是否存在和刪除操作依賴的是equals方法

Set:無序的,無索引,元素不可重復(fù)

HashSet:底層是哈希表,線程不同步,無序、高效 保證元素唯一性:通過元素的hashCode和equals方法。若hashCode值相同,則會判斷equals的結(jié)果是否為true;hashCode不同,不會調(diào)用equals方法 LinkedHashSet:有序,是HashSet的子類TreeSet:底層是二叉樹,可對元素進(jìn)行排序,默認(rèn)是自然順序 保證唯一性:Comparable接口的compareTo方法的返回值TreeSet兩種排序方式:兩種方式都存在時,以比較器為主 第一種:自然排序(默認(rèn)排序): 添加的對象需要實(shí)現(xiàn)Comparable接口,覆蓋compareTo方法 第二種:比較器 添加的元素自身不具備比較性或不是想要的比較方式。將比較器作為參數(shù)傳遞進(jìn)去。 定義一個類,實(shí)現(xiàn)Comparator接口,覆蓋compare方法。當(dāng)主要條件相同時,比較次要條件。

Map集合:

HashTable:底層數(shù)據(jù)結(jié)構(gòu)是哈希表,不可存入null鍵和null值。同步的 PRoperties繼承自HashTable,可保存在流中或從流中加載,是集合和IO流的結(jié)合產(chǎn)物HashMap:底層數(shù)據(jù)結(jié)構(gòu)是哈希表;允許使用null鍵和null值,不同步,效率高TreeMap: 底層數(shù)據(jù)結(jié)構(gòu)時二叉樹,不同步,可排序 與Set很像,Set底層就是使用了Map集合 方法: V put(K key, V value) ; void putAll(Map m) V remove(Object key) containsValue(Object key);isEmpty() V get(Object key); int size(); Collection values() Set keySet(); Set

Map集合兩種取出方式:

第一種

Set<K> keySet()

取出Map集合中的所有鍵放于Set集合中,然后再通過鍵取出對應(yīng)的值

Set<String> keySet = map.keySet();Iterator<String> it = keySet.iterator();while(it.hasNext()){String key = it.next();String value = map.get(key);//….}

第二種

Set<Map.Entry<K,V>> entrySet()

取出Map集合中鍵值對的映射放于Set集合中,然后通過Map集合中的內(nèi)部接口,然后通過其中的方法取出

Set<Map.Entry<String,String>> entrySet = map.entrySet();Iterator<Map.Entry<String,String>> it = entrySet.iterator();While(it.hasNext()){ Map.Entry<String,String> entry = it.next(); String key = entry.getKey(); String value = entry.getValue(); //…… }

Collection和Map的區(qū)別:

Collection:單列集合,一次存一個元素Map:雙列集合,一次存一對集合,兩個元素(對象)存在著映射關(guān)系

集合工具類:

Collections:操作集合(一般是list集合)的工具類。方法全為靜態(tài)的sort(List list);對list集合進(jìn)行排序; sort(List list, Comparator c) 按指定比較器排序fill(List list, T obj);將集合元素替換為指定對象;swap(List list, int I, int j)交換集合指定位置的元素shuffle(List list); 隨機(jī)對集合元素排序reverSEOrder() :返回比較器,強(qiáng)行逆轉(zhuǎn)實(shí)現(xiàn)Comparable接口的對象自然順序reverseOrder(Comparator c):返回比較器,強(qiáng)行逆轉(zhuǎn)指定比較器的順序

Collection和Collections的區(qū)別:

Collections:java.util下的工具類,實(shí)現(xiàn)對集合的查找、排序、替換、線程安全化等操作。Collection:是java.util下的接口,是各種單列集合的父接口,實(shí)現(xiàn)此接口的有List和Set集合,存儲對象并對其進(jìn)行操作。

Arrays:

用于操作數(shù)組對象的工具類,全為靜態(tài)方法

asList():將數(shù)組轉(zhuǎn)為list集合 好處:可通過list集合的方法操作數(shù)組中的元素:isEmpty()、contains()、indexOf()、set()

數(shù)組的好于弊

a. 弊端:數(shù)組長度固定,不可使用集合的增刪操作。 如果數(shù)組中存儲的是基本數(shù)據(jù)類型,asList會將數(shù)組整體作為一個元素存入集合 集合轉(zhuǎn)為數(shù)組:Collection.toArray(); b.好處:限定了對集合中的元素進(jìn)行增刪操作,只需獲取元素


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长顺县| 兴城市| 南宫市| 杨浦区| 盐亭县| 英吉沙县| 龙川县| 梓潼县| 灵宝市| 清流县| 西吉县| 桂东县| 辰溪县| 依兰县| 香格里拉县| 兴化市| 广东省| 馆陶县| 胶州市| 平顶山市| 轮台县| 沙田区| 融水| 伊宁市| 象州县| 瑞金市| 盘山县| 青河县| 娄底市| 黄大仙区| 咸阳市| 襄城县| 儋州市| 元江| 海安县| 泰和县| 大埔区| 巴东县| 扬州市| 霍城县| 双辽市|