日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、集合與數組的區別

相同點:都是用來存儲數據的。不同點:1.集合帶array的,底層由數組實現,還有一部分由其他方式(樹、鏈表等)實現。2.數組大小固定,而集合沒有固定的大小,更方便存儲。3.數組只能放一種類型,集合不考慮泛型可以存多種類型。4.集合放基本類型是通過裝箱拆箱(包裝類與基本數據類型的轉換)來實現的。(寫泛形的時候不能用int,而要用Integer)

二、幾種常用集合之間的關系

Java集合的常見用法你知道多少?

 

Map接口自成一系,是以鍵值對(Key,Value)方式存儲數據的,屬于雙列集合。Set接口的實現類: HashSet、LinkedHashSet、TreeSet。List接口的實現類:ArrayList、LinkedList、Vector(線程安全)。Queue接口的實現類 : LinkedList、PriorityQueue。(沒怎么用過,混個臉熟)Map接口的實現類:HashMap、TreeMap、Hashtable(線程安全)。

三、每種集合的性質

3.1Collection接口(單列)

Collection接口的常用方法:

add(T t) //添加指定元素 
remove(T t) //刪除指定元素 
isEmpty() //集合是否為空 
iterator() //獲得迭代器(Iterator類型),一般用于遍歷 
size() //獲得元素的個數 
contains(T t) //是否包含某元素

3.1.1.List 有序,可重復

List接口的常用方法

add(int index, T t) //向指定位置添加元素 
remove(int index) //刪除指定元素 
get(int index) //獲取指定位置的元素 
set(int index, T t) //修改指定位置的元素 
indexOf(T t) //獲取指定元素的位置

ArrayList 底層數據結構是數組,查詢快,增刪慢。ArrayList的常用方法都是從List繼承來的,就不多說了。LinkedList 底層數據結構是鏈表,查詢慢,增刪快。LinkedList 的常用方法:

getFirst() //獲取第一個元素 
getLast() //獲取最后一個元素 
offer(T t) //在最后位置追加元素 
offerFirst(T t) //在開頭位置追加元素 
offerLast(T t) //在最后位置追加元素 
removeFirst() //刪除第一個元素 
removeLast() //刪除最后一個元素

Vector 底層數據結構是數組,線程安全,效率低。使用方法和ArrayList基本一樣。

3.1.2.Set 不可重復

方法:常用的都是從Collection繼承到的,就輕松了許多。HashSet (無序,唯一)底層數據結構是哈希表。如何保證唯一:hashCode()和equals()LinkedHashSet(有序,唯一)底層數據結構是鏈表和哈希表。鏈表保證有序,哈希表保證唯一。TreeSet(有序,唯一)

底層數據結構是紅黑樹。

1.如何排序(add()方法的重載):自然排序(無參add()調用Comparable的compareTo()方法)定制排序 (add(? extends Comparator)調用類實現的compare()方法)注:裝載時若自然排序無法進行排序會報錯,所以對裝進集合的類實現Comparator接口進行自定義排序

2.如何保證唯一:根據比較的返回值是否為0來決定。

3.1.3.Queue 有序(FIFO先進先出)

PriorityQueue 有序(定制排序、自然排序(也就是說不是所謂的FIFO),我用的少,所以不是特別了解)

3.2Map接口(雙列)

put (K key,V value):把鍵與值添加到Map集合中  
remove (K key):刪除key對應的值  
get(K  key):根據指定的鍵,獲取對應的值  
containKey(K key):判斷是否包含指定的鍵  
entrySet() :返回Map.Entry型對象,用于遍歷。(entry.getKey()/entry.getValue()) 
keySet(K key):獲取Map集合中所有的Key,存儲到set集合中(用于遍歷)  
values(V value) :獲取Map集合中所有的Value,存儲到Collection集合中(用于遍歷)

3.2.1HashMap

HashMap的常用方法都繼承自Map接口,就不細說了。HashMap是最常用的鍵值對存儲容器。

3.2.2.TreeMap

構造器:TreeMap()//創建一個空TreeMap,keys按照自然排序TreeMap(Comparator comparator)//創建一個空TreeMap,按照自定義的comparator排序。3.2.3.Hashtable(線程安全)

與HashMap的異同:同:Hashtable和HashMap使用方法基本一致。異:HashMap線程不安全,而Hashtable是線程安全的;HashMap的K和V都可以為null,而Hashtable的K,V都不能為null。

四、總結

1.沒有其他要求時,最常用ArrayList、HashMap;2.不能重復時,用HashSet;3.需要線程安全時,用Vector、Hashtable。

分享到:
標簽:集合 Java
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定