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

首頁 > 學院 > 開發設計 > 正文

集合詳解

2019-11-09 15:32:30
字體:
來源:轉載
供稿:網友

集合:

特點:存儲對象;長度可變;存儲對象的類型可不同;

Collection

List:有序的;元素可重復,有索引

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

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

Set:無序的,無索引,元素不可重復

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

Map集合:

HashTable:底層數據結構是哈希表,不可存入null鍵和null值。同步的 PRoperties繼承自HashTable,可保存在流中或從流中加載,是集合和IO流的結合產物HashMap:底層數據結構是哈希表;允許使用null鍵和null值,不同步,效率高TreeMap: 底層數據結構時二叉樹,不同步,可排序 與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集合中,然后再通過鍵取出對應的值

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集合中的內部接口,然后通過其中的方法取出

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的區別:

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

集合工具類:

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

Collection和Collections的區別:

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

Arrays:

用于操作數組對象的工具類,全為靜態方法

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

數組的好于弊

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赤壁市| 三江| 连平县| 宣城市| 澄迈县| 中牟县| 烟台市| 吉安县| 崇信县| 德化县| 泸溪县| 旬阳县| 扶余县| 鹤峰县| 轮台县| 呼图壁县| 延津县| 桐梓县| 平舆县| 高安市| 台湾省| 眉山市| 修武县| 镇巴县| 乐清市| 县级市| 哈巴河县| 南岸区| 晋宁县| 马公市| 邢台市| 全南县| 霍林郭勒市| 新民市| 宜州市| 宣武区| 龙南县| 曲靖市| 旬邑县| 昂仁县| 青龙|