有序的arraylist實現類:基於陣列實現允許重複的
remove語句,刪除成功則返回true,不成功則返回falselinklist實現類:基於鍊錶實現注:不要在迭代時進行刪除,否則會出錯,可以使用迭代器自身的remove方法,如上。
與arraylist區別:越靠近頭部的新增刪除,arraylist越慢,越靠近尾部越快vector也是list子類,基於陣列實現在什麼位置新增內容對linklist幾乎執行速度都一樣
根據索引刪除,arraylist效率相對較高,但當刪除內容在頭部是,link快得多
根據元素刪除,arraylist刪除快
普通for迴圈,遍歷效率arraylist比linklist快得多
foreach迴圈遍歷,兩者差不多
執行緒安全,arraylist執行緒不安全,其他兩者無區別queue佇列,arrayqueue
poll方法 返回第乙個值且從佇列中刪除stack棧peek方法 返回第乙個值但不刪除
push方法,壓棧,與add相同list的幾種迭代方式peek 返回最後乙個值不刪除
pop 返回最後乙個的值且刪除
//普通for迴圈
for (int i = 0
; i < list.size(); i++)
system.out
.println();
//增強for迴圈
for (entry s : list)
system.out
.println();
//迭代器
iteratoriterator = list.iterator();
while (iterator.hasnext())
system.out
.println();
以後的迭代方法, 如果已經有了方法了就用::符號
list.foreach(system.out::print);
system.out
.println();
//常見的lambda語法
list.foreach(s -> system.out
.print(s + " "));
list中的選擇性刪除的方式
//把list中所有的不能被3整除的刪掉, 需要有個中間的集合來儲存要刪除的元素
arraylistremoves = new arraylist<>();
for (entry entry : list)
}list.removeall(removes);
// lambda表示式
-> e.getindex() % 3 != 0);
list和陣列
都是儲存相同資料型別的元素棧和佇列但是list的長度是可變的, 陣列的元素是不可變的
//佇列
queue
<
integer
>
queue
=new arraydeque<>();
queue
.add(1);
system.out.println(queue
.poll());
system.out.println("佇列的size是: "
+queue
.size());
system.out.println("***********************************===");
stack
<
integer
>
stack
=new
stack
<>();
stack
.push(59);;
system.out.println(stack
.pop());
無序的如何判斷是相同元素:不允許重複(新增順序和儲存順序)
只能使用迭代器或者增強for迴圈進行遍歷
首先判斷hashcode是否一樣如何存的?如果一樣, 比較equals方法, 如果也返回true, 則視為相同
(樹形結構 -> 二叉樹 -> 紅黑樹)如何判斷是否相同?
讓比較物件 實現comparable介面(一勞永逸的解決方案)collection: 父介面:給treeset物件傳入乙個實現comparator的物件(更加靈活)注意: 如果兩者都實現了, 依第2種方式為準
set: 介面-實現類: hashset, linkedhashset
list: 介面-實現類: linkedlist, vector, arraylist
sortedset: 介面-實現類: treeset
map介面-實現類: hashmap, hashtable, linkedhastmap, properties
1, list:有序列表, 允許存放重複的元素
實現類 :
arraylist:陣列實現,查詢快,增刪慢,執行緒不安全,輕量級;
linkedlist:鍊錶實現,增刪快,查詢慢
vector:陣列實現,執行緒安全,重量級
2, set:
無序集合,不允許存放重複的元素;允許使用null元素
hashset 的後台有乙個hashmap;初始化後台容量;只不過生成乙個hashset的話,系統只提供key的訪問; 如果有兩個key重複,那麼會覆蓋之前的;
實現類 hashset:equals返回true,hashcode返回相同的整數;雜湊表;儲存的資料是無序的。
3、map
hashmap:鍵值對,key不能重複,但是value可以重複;key的實現就是hashset;value對應著放;允許null的鍵或值;
hashtable:執行緒安全的,不允許null的鍵或值;
properties::key和value都是string型別,用來讀配置檔案;
treemap:對key排好序的map; key 就是treeset, value對應每個key; key要實現comparable介面或treemap有自己的構造器;
4、兩個工具類 arrays 和 collections
1.arrays、此類包含用來運算元組(比如排序和搜尋)的各種方法。
2.collections、主要提供了在 collection 上進行操作的靜態方法(同步集合類方法) 。
java中的集合
set hashset無序不重複,底層資料結構是雜湊表,執行緒非同步,保證元素唯一性原理是判斷hashcode值是否相同 位址相同 如果相同還會繼續判斷equals方法是否為true 是否是同乙個物件 treeset字典序不重複,底層資料是二叉樹,保證元素唯一性原理是compareto方法retur...
java中的集合
1.1 collection介面 新增 add e e addall collectionc 刪除 clear 清空集合 remove object o 刪除乙個元素 removeall collection c 刪除兩個集合的交集部分 retainall collection c 刪除兩個集合沒有...
java中的集合
合集主要包括 collection 和 map.它們都實現了iterator,這是乙個遍歷集合中元素的介面.collection主要包括list 和 set.list arraylist,linkedlist set hashset,treeset 用二叉排序樹 list 有序,可重複.set 無序...