集合其實就是乙個可以存放任意物件的乙個容器,相比較陣列來說,陣列存放的資料型別是固定的,長度是固定的,而集合可存放任意型別資料,集合存放的都是引用型別的物件,而陣列,你可以定義為引用型別陣列,存放物件,也可定義基本型別陣列。其實集合之所以能存放基本型別資料,主要是因為jdk1.5版本的自動拆箱和裝箱的功能,把基本型別資料轉成引用型別資料
collection
|__list::元素是有序的,訪問的順序一致.。因為該集合體系有索引。
| 注意:判斷集合是否包含某個元素,以及刪除某個元素,依靠的都是元素的equals()方法。
| |__arraylist:底層使用的資料結構是陣列結構。執行緒不同步
| |___linklist:底層使用的資料結構是鍊錶結構
| |__vector:底層使用的資料結構是陣列結構。執行緒同步
||—set:元素是無須的(存入和取出的順序不一致),元素不可重複。
| 並且set集合的功能和collection介面的功能是一致的
|__hashset:底層的資料結構是雜湊表。
| hashset保證資料唯一性的原理:判斷元素的hashcode值是否相同,,如果相同還會繼續比較物件的
| equals()方法,是否為true
|__treeset::底層使用的資料結構是二叉樹。可以對set集合中的元素進行排序。
| treeset保證資料唯一性的原理是:根據元素的compareto方法,是否返回0;
(2) 當元素不具備比較性時,或具備的比較性不是我們所
需要時需要讓集合具備 較性,在集合初始化時,就有了比較方式,即在建構函式
中定義乙個比較器,將比較器物件作為引數傳遞給treeset集合中的建構函式 中。
當兩種排序都存在時,以比較器為主。
注意:arraylist判斷元素是否存在,還有刪除元素依賴的是元素的equals()方法,hashset判斷集合中是否包含某個元素,及刪除 某個元素依賴的是hashcode()和equals()方法, treeset判斷元素是否存在,還有刪除元素依賴的是元素的compare()方法
map|_hashtable:底層是雜湊表資料結構,不可以存入null鍵和null值,執行緒同步的。
||_hashmap:底層用的也是雜湊表資料結構,允許使用null鍵和null值,執行緒不同步的,效率高,替代了 hashtable
||_treemap:底層是二叉樹資料結構,執行緒不同步。可用於給map集合中的鍵進行排序。
map介面是所有雙列集合的乙個父類,他是以鍵值對的形式儲存的,他們的鍵都是唯一的,比較常用的子類有hashmap和treemap,
hashmap底層用的是hash表,所以他保證鍵唯一性的原理,主要依靠的就是hashcod()和equels()方法,跟hashset有點類似;treemap採用的樹狀結構,所以他保證鍵唯一性的原理是依靠物件的比較性,如果物件沒有比較性,就會報錯,如果你新增的這個資料的鍵跟集合中的鍵有重複的,那麼後面的會覆蓋前面的,特別注意他的返回值是被覆蓋的鍵的值。
黑馬程式設計師 集合
collection list 元素是有序的,元素可以重複。因為該集合體系有索引。arraylist 底層的資料結構使用的是陣列結構。特點 查詢速度很快。但是增刪稍慢。執行緒不同步。linkedlist 底層使用的鍊錶資料結構。特點 增刪速度很快,查詢稍慢。執行緒不同步。vector 底層是陣列資料...
黑馬程式設計師 集合
asp.net unity開發 net培訓 期待與您交流!1.集合類 為什麼會出現集合類?面對物件語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的一種方式。集合類的特點 集合只用於儲存物件,集合的長度是可變的,集合可以儲存不同型別的物件。集合...
黑馬程式設計師 集合
集合 string類 字串是乙個特殊的物件。字串一旦初始化就不可以被改變。string str abc string str1 new string abc 基本資料型別物件包裝類 將基本資料型別封裝成物件的好處在於可以在 物件中定義更多的功能方法操作該資料。常用的操作之一 用於基本資料型別與字串 ...