1. 程式人生 > >Java的集合類

Java的集合類

rowspan 根據 strong 無序 下使用 排序 eem 是否 關系

一、集合與數組

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

集合(只能存儲對象,對象類型可以不一樣)的長度可變,可在多數情況下使用。

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

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

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

三、幾種重要的接口和類簡介

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

2、Set(無序、不能重復)
Set裏存放的對象是無序,不能重復的,集合中的對象不按特定的方式排序,只是簡單地把對象加入集合中。

3、Map(鍵值對、鍵唯一、值不唯一)
Map集合中存儲的是鍵值對,鍵不能重復,值可以重復。根據鍵得到值,對map集合遍歷時先得到鍵的set集合,對set集合進行遍歷,得到相應的值。

對比如下:

 

 

是否有序

是否允許元素重復

Collection

List

Set

AbstractSet

 

HashSet

 

TreeSet

是(用二叉排序樹)

Map

AbstractMap

使用key-value來映射和存儲數據,key必須唯一,value可以重復

 

HashMap

 

TreeMap

是(用二叉排序樹)

Java的集合類