List Map Set三個介面,訪問元素的特點

2021-08-10 02:05:42 字數 2340 閱讀 4092

首先,

list

與set

具有相似性,它們都是單列元素的集合,所以,它們有乙個功共同的父介面,叫

collection

。set

裡面不允許有重複的元素,所謂重複,即不能有兩個相等(注意,不是僅僅是相同)的物件

,即假設

set集合中有了乙個

a物件,現在我要向

set集合再存入乙個

b物件,但

b物件與a物件

equals

相等,則

b物件儲存不進去,所以,

set集合的

add方法有乙個

boolean

的返回值,當集合中沒有某個元素,此時

add方法可成功加入該元素時,則返回

true

,當集合含有與某個元素

equals

相等的元素時,此時

add方法無法加入該元素,返回結果為

false

。set

取元素時,沒法說取第幾個,只能以

iterator

介面取得所有的元素,再逐一遍歷各個元素。

list

表示有先後順序的集合,

注意,不是那種按年齡、按大小、按**之類的排序。當我們多次呼叫

add(obj e)

方法時,每次加入的物件就像火車站買票有排隊順序一樣,按先來後到的順序排序。有時候,也可以插隊,即呼叫

add(int index,obj e)

方法,就可以指定當前物件在集合中的存放位置。乙個物件可以被反覆儲存進

list

中,每呼叫一次

add方法,這個物件就被插入進集合中一次,其實,並不是把這個物件本身儲存進了集合中,而是在集合中用乙個索引變數指向這個物件,當這個物件被

add多次時,即相當於集合中有多個索引指向了這個物件,如圖

x所示。

list

除了可以以

iterator

介面取得所有的元素,再逐一遍歷各個元素之外,還可以呼叫

get(index i)

來明確說明取第幾個。

map與list

和set

不同,它是雙列的集合,其中有

put方法,定義如下:

put(obj key,obj value)

,每次儲存時,要儲存一對

key/value

,不能儲存重複的

key,這個重複的規則也是按

equals

比較相等。取則可以根據

key獲得相應的

value

,即get(object key)

返回值為

key所對應的

value

。另外,也可以獲得所有的

key的結合,還可以獲得所有的

value

的結合,還可以獲得

key和

value

組合成的

map.entry

物件的集合。

list

以特定次序來持有元素,可有重複元素。

set

無法擁有重複元素

,內部排序。

map

儲存key-value

值,value

可多值。

hashset

按照hashcode

值的某種運算方式進行儲存,而不是直接按

hashcode

值的大小進行儲存。例如,

"abc" ---> 78

,"def"---> 62

,"xyz" ---> 65

在hashset

中的儲存順序不是

62,65,78

,這些問題感謝以前乙個叫崔健的學員提出,最後通過檢視源**給他解釋清楚,看本次培訓學員當中有多少能看懂原始碼。

linkedhashset

按插入的順序儲存,那被儲存物件的

hashcode

方法還有什麼作用呢?學員想想

!hashset

集合比較兩個物件是否相等,首先看

hashcode

方法是否相等,然後看

equals

方法是否相等。

new

兩個student

插入到hashset

中,看hashset

的size

,實現hashcode

和equals

方法後再看

size。

同乙個物件可以在

vector

中加入多次。往集合裡面加元素,相當於集合裡用一根繩子連線到了目標物件。往

hashset

中卻加不了多次的。

List Map Set三個介面,訪問元素時的特點

首先,list 與set 具有相似性,它們都是單列元素的集合,所以,它們有乙個功共同的父介面,叫 collection set 裡面不允許有重複的元素,所謂重複,即不能有兩個相等 注意,不是僅僅是相同 的物件 即假設 set集合中有了乙個 a物件,現在我要向 set集合再存入乙個 b物件,但 b物件...

Lock介面的三個實現類

一.reentrantlock 可重入鎖 即可重入鎖。具體可看 例 class clerk catch interruptedexception e system.out.println thread.currentthread getname product condition.signalall...

List集合介面下的三個實現類

底層採用陣列儲存元素,具有高效的查詢效率,但是增刪效率低。一般我們採用多型的方式建立集合,但是arraylist因為是實現類所以也可以建立。arraylist集合中的方法與其父介面list差不多相同。下面是使用arraylist集合的案例 去除arraylist集合中重複元素。因為list集合特點是...