集合的型別與各自的特性
---|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 ...