集合,集合想破腦殼

2021-06-06 02:20:02 字數 1485 閱讀 7805

集合已經學了兩天,感覺集合這塊細節內容比較多,各個集合之間方法也挺相似的。做起題目來有點不知道選擇哪乙個,有點茫然。

老師上課講的習題看了一遍,也練習了一下,感覺還是掌握得不紮實。想乘著今天放假多總結一下,比較一下各個集合之間的相同點和不同點。

面試題(必須會)

請使用linkedlist 

來模擬乙個堆疊或者佇列資料結構

堆疊:先進後出

佇列:先進先出

set集合

元素不可重複 有可能是無序

set介面中的方法和

collection一致

set|---hashset:內部資料結構式雜湊表,是不同步的。

如何保證集合的元素唯一性呢?

是通過物件hashcode

和equals

方法來完成物件唯一性的

如果物件hashcode

值不同,那麼不用判斷

equals

方法,就直接儲存到雜湊表中。

如果物件的hashcode

值相同,那麼要再次判斷物件的

equals

方法是否為

true

如果為true

視為相同元素,不存。如果為

false

,那麼視為不同元素,就進行儲存

記住:如果元素要儲存到hashset

集合中,必須覆蓋

hashcode

方法和equals

方法。一般情況下,如果定義類會產生很多物件,比如人,學生,書,通常都需要覆蓋

equals

,hashcode

方法。

建立物件判斷是否相同的依據。

|---treeset::

可以對set

集合中的元素進行排序,是不同步的。

雜湊表確定元素是否相同

1,判斷的是兩個元素的雜湊值是否相同

如果相同,再判斷兩個物件的內容是否相同

2,判斷雜湊值相同,其實判斷的是物件的

hashcode

的方法

判斷內容相同,用的是equals方法

注意:如果雜湊值不同,是不需要判斷equals

treeset判斷元素唯一性的方式:就是根據比較方法的返回結果是否是零。

treeset對元素程序排序的方式一:

讓元素自身具備比較功能,就需要實現comparable

介面,覆蓋方法

如果不要按照物件中具備的自然順序進行排序。如果物件中不具備自然順序。怎麼辦?

可以使用treeset

集合的第二種排序方式:

讓集合自身具備比較功能,定義乙個類實現comparable

介面,覆蓋

compare

方法。將 該類物件作為引數傳遞給treeset

集合的建構函式。

C 集合 集合

1,什麼是集合 集合 collection 類是專門用於資料儲存和檢索的類。這些類提供了對棧 stack 佇列 queue 列表 list 和雜湊表 hash table 的支援。大多數集合類實現了相同的介面。集合 collection 類服務於不同的目的,如為元素動態分配記憶體,基於索引訪問列表項...

集合 集合運算

update pop remove 集合的運算 集合和字典相同都用 但是集合沒有鍵,只有元素值 集合中存貯列表會報錯,因為只能存貯不可變序列,而列表是可變的 直接建立 se print se,type se class set 通過set 建立 se set 1 2,3 4 這裡函式中用列表,因為要...

集合,集合的練習

set不支援 索引,切片,重複,連線,因為set是無序的 s print s 列表去重 li 1,2,3,1,2,3 print list set li s1 s2 print 並集 s1.union s2 並集 print 交集 s1.intersection s2 交集 求交集時,把s1的值更新...