Java 源碼分析(一)集合

Java 集合 包括 list,map,set

集合

集合與數組

數組(可以存儲基本數據類型)是用來存現對象的一種容器,但是數組的長度固定,不適合在對象數量未知的情況下使用。

集合(只能存儲對象,對象類型可以不一樣)的長度可變,可在多數情況下使用。
注:數組我在前面的博客講了大家可以看下

集合中接口和類的關係

Collection接口是集合類的根接口,Java中沒有提供這個接口的直接的實現類。但是卻讓其被繼承產生了兩個接口,就是Set和List。Set中不能包含重複的元素。List是一個有序的集合,可以包含重複的元素,提供了按索引訪問的方式。

Map是Java.util包中的另一個接口,它和Collection接口沒有關係,是相互獨立的,但是都屬於集合類的一部分。Map包含了key-value對。Map不能包含重複的key,但是可以包含相同的value。

Iterator所有的集合類,都實現了Iterator接口,這是一個用於遍歷集合中元素的接口,主要包含以下三種方法:
1.hasNext()是否還有下一個元素。
2.next()返回下一個元素。
3.remove()刪除當前元素。

層次圖

圖一這個比較簡單

這裏寫圖片描述

圖二完整

這裏寫圖片描述

list,set,map對比

接口 子接口 是否有序 是否允許元素重複
Collection             
List    ArrayList
       LinkedList
       Vector
Set AbstractSet
   HashSet
   TreeSet 是(用二叉排序樹)
Map AbstractMap 使用key-value來映射和存儲數據,key必須唯一,value可以重複
   HashMap  
   TreeMap 是(用二叉排序樹) 使用key-value來映射和存儲數據,key必須唯一,value可以重複

 

1.List

List裏存放的對象是有序的,同時也是可以重複的,List關注的是索引,擁有一系列和索引相關的方法,查詢速度快。因爲往list集合裏插入或刪除數據時,會伴隨着後面數據的移動,所有插入刪除數據速度慢。

2.

 

3.

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