1、集合的型別和各自的特性
---|collection: 單列集合
---|list: 有儲存順序
,可重複
---|arraylist: 陣列實現,查詢快,
增刪慢,由於是陣列實現,
在增和刪的時候會牽扯到陣列增容,
以及拷貝元素
,所以慢。陣列是可以直接按索引查詢,
所以查詢時較快
---|linkedlist: 鍊錶實現,
增刪快,
查詢慢由於鍊錶實現
,增加時只要讓前乙個元素記住自己就可以
,刪除時讓前乙個元素記住後乙個元素
,後乙個元素記住前乙個元素
.這樣的增刪效率較高但查詢時需要乙個乙個的遍歷
,所以效率較低
---|vector: 和arraylist
原理相同
,但執行緒安全
,效率略低。 和arraylist
實現方式相同
,但考慮了執行緒安全問題
,所以效率略低
---|set: 無儲存順序
, 不可重複
---|hashset執行緒不安全,訪問速度快。底層是以雜湊表實現的。
---|treeset紅-
黑樹的資料結構,預設對元素進行自然排序(string
)。如果在比較的時候兩個物件返回值為0
,那麼元素重複。
---| map: 鍵值對 鍵不可重複,鍵可以重複
---|hashmap執行緒不安全,訪問速度快。底層是以雜湊表實現的.
---|treemap紅-
黑樹的資料結構,預設對元素進行自然排序(string
)。如果在比較的時候兩個物件返回值為0
,那麼元素重複
---|hashtable底層也是使用了雜湊表 維護的,訪問的讀取快,儲存元素是無序的。
2、遍歷集合的幾種方式
a.使用迭代器iterator的方式。
b.使用增強for迴圈的方式。
c.如果有下標,則可以使用下標的方式。
3、示例
a.遍歷陣列
public static void main(string args);
//1.增強的for迴圈方式
for(string elt :arr)
//2.下標方式
for(int i=0;isystem.out.println(arr[i]);}}
b.遍歷list public static void main(string args)
// 2.下標
for(inti = 0; i < list.size(); i++)
// 3.迭代器
for(iteratoriter = list.iterator(); iter.hasnext();)
}c.遍歷set
public static voidmain(string args)
// 2,迭代器
for(iteratoriter = set.iterator(); iter.hasnext() ; )
}d.遍歷map
public static voidmain(string args)
// 2,增強的
for迴圈(
key集合)
for(string key : map.keyset())
// 3,遍歷值的集合
for(string value : map.values())
}
java基礎 集合
1 物件的儲存 陣列 基本資料型別 引用資料型別 集合 引用資料型別 陣列儲存資料的弊端 長度一旦初始化以後,就不可變 真正給陣列元素賦值的個數沒有現成的方法可用。2 集合框架 collection介面 list介面 儲存有序的,可以重複的元素,相當於 動態 陣列 新增進list集合中的元素 或物件...
java基礎 集合1
1 陣列和集合的區別,陣列存放同一型別的物件,集合可以存放不同型別的物件 陣列長度一定,集合長度不一定 2 資料在記憶體中的儲存結構稱為資料結構 3 集合和陣列存放的都是物件的位址 4 list有序 可以重複的 凡是可以操作角標的方法都是特有方法,增刪改查 增 add addall 刪 remove...
java基礎之集合
1.collectiton 單列儲存集合 list 元素是有序的,元素可以重複。因為該集合體系有索引 arraylist 底層的資料結構使用的是陣列結構 特點 陣列元素查詢很快,但是增刪很慢,因為增刪乙個元素,陣列後面的其他元素都需要變動,執行緒不同步 linklist 底層的資料結構使用的是鍊錶資...