《集合》

集合思維導圖:
在這裏插入圖片描述

集合比較方面問題:

ArrayList和LinkedList的區別:
1、結構:
ArrayList是數組結構
LinkedList是鏈表結構
2、優缺點
	ArrayList:
	**優點:查詢速度快
	**缺點:增刪改的速度慢
	LinkedList:
	**優點:查詢速度慢,不適合做查詢
	**缺點:增刪改的速度快

Array和ArrayList的區別:
1、存儲的數據類型
	Array是數組
	ArrayList是集合
2、長度
	Array是固定數組,長度不可變
	ArrayList是動態數組被稱爲“集合”,長度可變
3、ArrayList是Array的複雜版本
HashSet、TreeSet、LinkedHashSet的區別:

1、需要速度快的集合,用HashSet
2、需要集合排序功能,用TerrSet
3、需要插入順序進行排序,用LinkedHashSet

HashSet有以下特點:
 不能保證元素的排列順序,順序有可能發生變化
 不是同步的
 集合元素可以是null,但只能放入一個null
LinkedHashSet:
LinkedHashSet集合同樣是根據元素的hashCode值來決定元素的存儲位置,但是它同時使用鏈表維護元素的次序
LinkedHashSet在迭代訪問Set中的全部元素時,性能比HashSet好,但是插入時性能稍微遜色於HashSet

HashMap、TreeMap、LinkedHashMap的區別:

1、在Map集合中插入、刪除和定位元素用HashMap
2、需要集合排序,用TreeMap
3、插入順序進行排序,用LinkedHashMap

共同點:
HashMap、LinkedHashMap、TreeMap都屬於Map
不同點:
1、HashMap裏面存入的鍵值對在取出的時候是隨機的,也是我們最常用的一個Map.它根據鍵的HashCode值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度。在Map 中插入、刪除和定位元素,HashMap 是最好的選擇。  
2、TreeMap取出來的是排序後的鍵值對。要按自然順序或自定義順序遍歷鍵,那麼TreeMap會更好。  
3、 LinkedHashMap 是HashMap的一個子類,如果需要輸出的順序和輸入的相同,那麼用LinkedHashMap可以實現.  (應用場景:購物車等需要順序的)
HashMap和HashSet的區別:
HashMap HashSet
實現了Map接口 實現了Set接口
存儲鍵值對 存儲對象
調用put()增加元素 調用add()增加元素
調用put()增加元素 調用add()增加元素
使用key計算hashcode 使用成員對象計算hashcode
HashMap相對於HashSet比較快 HashSet相對於HashMap比較慢
List、Set、Map的區別:

List、Set是繼承collection,Map不是繼承collection

List Set Map
允許有重複的元素 不允許有重複的元素 不允許有重複的Key(鍵),但是可以有重複的值
可以插入多個null元素 只可以插入一個null元素 Key(鍵)只能插入一個null元素,但是值可以插入多個null元素
有序容器,插入的順序和輸出的順序一樣 無序容器 無序容器
將一個數組轉成List

數組轉List,可以使用Arrays.asList
List轉數組,使用list.toArray

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章