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.