1、list,set都是繼承自collection介面,map則不是
2、list特點:元素有放入順序,元素可重複 ,set特點:元素無放入順序,元素不可重複,重複元素會覆蓋掉,(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的hashcode決定的,其位置其實是固定的,加入set 的object必須定義equals()方法 ,另外list支援for迴圈,也就是通過下標來遍歷,也可以用迭代器,但是set只能用迭代,因為他無序,無法用下標來取得想要的值。)
3.set和list對比:
set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。
list:和陣列類似,list可以動態增長,查詢元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。
4.map適合儲存鍵值對的資料
5.執行緒安全集合類與非執行緒安全集合類
linkedlist、arraylist、hashset是非執行緒安全的,vector是執行緒安全的;
hashmap是非執行緒安全的,hashtable是執行緒安全的;
stringbuilder是非執行緒安全的,stringbuffer是執行緒安全的。
下面是具體的使用介紹:
arraylist:
linkedlist:
優點:linkedlist基於鍊錶的資料結構,位址是任意的,所以在開闢記憶體空間的時候不需要等乙個連續的位址,對於新增和刪除操作add和remove,linedlist比較佔優勢。linkedlist 適用於要頭尾操作或插入指定位置的場景
缺點:因為linkedlist要移動指標,所以查詢操作效能比較低。
適用場景分析:
當需要對資料進行對此訪問的情況下選用arraylist,當需要對資料進行多次增加刪除修改時採用linkedlist。
list與Set Map區別及適用場景
元素有放入順序,元素可重複 set特點 元素無放入順序,元素不可重複,重複元素會覆蓋掉,注意 元素雖然無放入順序,但是元素在set中的位置是有該元素的hashcode決定的,其位置其實是固定的,加入set 的object必須定義equals 方法 另外list支援for迴圈,也就是通過下標來遍歷,也...
Java中Set Map和List的區別
在寫專案的時候遇到了去重,用到了set集合的hashset,查閱了資料 2.list 列表 特徵主要是元素以線性方式儲存,可以存放重複物件。檢索list集合中所有元素的方法 由index指定索引位置下標0開始 1 for迴圈和get 方法 for int i 0 ilist 保證維護元素特定的順序。...
C list及list與vector的區別
list是 雙向迴圈鍊錶。在stl中,list和vector一樣,是兩個常被使用的容器。和vector不一樣的是,list不支援對元素的任意訪問。list中提供的成員函式與vector類似,不過list提供對錶首元素的操作push front pop front,這是vector不具備的。和vect...