java基礎之集合

2021-07-22 08:40:29 字數 2401 閱讀 2945

集合的型別與各自的特性

---|collection: 單列集合

---|list: 有儲存順序, 可重複

---|arraylist:

陣列實現, 查詢快, 增刪慢由於是陣列實現, 在增和刪的時候會牽扯到陣列增容, 以及拷貝元素,所以慢。陣列是可以直接按索引查詢,所以查詢時較快。

---|linkedlist:鍊錶實現, 增刪快, 查詢慢由於鍊錶實現, 增加時只要讓前乙個元素記住自己就可以, 刪除時讓前乙個元素記住後乙個元素, 後乙個元素記住前乙個元素. 這樣的增刪效率較高但查詢時需要乙個乙個的遍歷, 所以效率較低。

---|vector:和arraylist原理相同, 但執行緒安全, 效率略低和arraylist實現方式相同, 但考慮了執行緒安全問題, 所以效率略低。

---|set: 無儲存順序, 不可重複

---|hashset:執行緒不安全,訪問速度快。底層是以雜湊表實現的。

---|treeset:紅-黑樹的資料結構,預設對元素進行自然排序(string)。如果在比較的時候兩個物件返回值為0,那麼元素重複。

---| map: 鍵值對   鍵不可重複,鍵可以重複

---|hashmap:執行緒不安全,訪問速度快。底層是以雜湊表實現的。

---|treemap:紅-黑樹的資料結構,預設對元素進行自然排序(string)。如果在比較的時候兩個物件返回值為0,那麼元素重複。

---|hashtable:底層也是使用了雜湊表 維護的,訪問的讀取快,儲存元素是無序的。

遍歷集合的幾種方式

1、 使用迭代器iterator的方式。

2、 使用增強for迴圈的方式。

3、如果有下標,則可以使用下標的方式。

陣列遍歷

/**

* 陣列

*/string string = new string ;

//遍歷

for (int i = 0; i < string.length; i++)

集合遍歷

/**

* 集合

*//*--------list---------*/

// linkedlist

linkedlistlinkedlist = new linkedlist();

linkedlist.add("a");

linkedlist.add("a");

linkedlist.add("b");

linkedlist.add("bc");

linkedlist.offer("f");

// 遍歷

/*①for迴圈增強*/

for (string value : linkedlist)

/*②iterator*/

iteratoriterator = linkedlist.iterator();

while(iterator.hasnext())

// arraylist

arraylistarraylist = new arraylist();

arraylist.add("a");

arraylist.add("a");

arraylist.add("b");

// 遍歷

for (string value : arraylist)

/*--------set----------*/

hashsethashset = new hashset();

hashset.add("a");

hashset.add("b");

hashset.add("c");

for (string value : hashset)

/*--------map----------*/

hashmaphashmap = new hashmap();

hashmap.put("1", "a");

hashmap.put("2", "b");

hashmap.put("3", "c");

//遍歷

/* 1,增強的for迴圈(entry集合)*/

for (entryentry : hashmap.entryset())

/*2,增強的for迴圈(key集合)*/

for(string key : hashmap.keyset())

/*3,遍歷值的集合*/

for(string value : hashmap.values())

java基礎之集合

1.collectiton 單列儲存集合 list 元素是有序的,元素可以重複。因為該集合體系有索引 arraylist 底層的資料結構使用的是陣列結構 特點 陣列元素查詢很快,但是增刪很慢,因為增刪乙個元素,陣列後面的其他元素都需要變動,執行緒不同步 linklist 底層的資料結構使用的是鍊錶資...

java基礎之集合

集合容器因為內部的資料結構不同,有多種具體容器。不斷的向上抽取,就形成了集合框架。框架的頂層collection介面 collection的常見方法 1.新增 boolean add object obj boolean addall collection coll 2.刪除 boolean rem...

Java基礎之集合

list 和set 都是conllection 介面的子介面。list 中的元素是有順序的,可以重複的。set中的額元素是沒有順序的,不可以重複的.set是通過hashcode 和equals 比較元素是否重複的。先使用hashcode 方法判斷已經存在 hashset 中元素的 hashcode ...