理解总结篇—List、Set、Map
List是存儲(chǔ)對(duì)象的容器,可以存儲(chǔ)任意類(lèi)型的對(duì)象且長(zhǎng)度可變,List的存儲(chǔ)對(duì)象是有順序的,可重復(fù)的。
<1> List的接口框架
? ? ArrayList實(shí)現(xiàn)類(lèi)通過(guò)數(shù)組實(shí)現(xiàn),在向集合中增加或刪除時(shí),需要對(duì)集合進(jìn)行增容和拷貝,所以增刪慢;而數(shù)組可以直接通過(guò)索引進(jìn)行查找,所以查詢快;一般查詢多增刪少的,優(yōu)先選擇ArrayList集合。
? ? LinkedList實(shí)現(xiàn)類(lèi)通過(guò)鏈表實(shí)現(xiàn),在向集合中增加或刪除時(shí),無(wú)需擴(kuò)容,所以增刪快;但是不能通過(guò)索引進(jìn)行定位查找,需要檢索全部,所以查慢;一般增刪多查詢少的,優(yōu)先選擇LinkedList集合。
? ? Vector實(shí)現(xiàn)類(lèi)也是通過(guò)數(shù)組實(shí)現(xiàn),是線程安全的,所以一般效率較ArrayList低。
<2> List接口的方法
? ? 增加? ? add(Object object); 將指定對(duì)象存儲(chǔ)到List容器中。addAll(List list); 將指定集合中的元素存儲(chǔ)到List容器中。
? ? 刪除? ? remove(Object object); 將指定對(duì)象從容器中移除。removeAll(List list); 移除容器中與指定集合中的元素相同的元素。clear(); 清空容器中的所有元素。
? ? 修改? ? set(Integer index,Object object); 將容器中指定位置的元素修改成指定元素。
? ? 判斷? ? isEmpty(); 判斷容器是否為空。contains(Object object); 判斷容器中是否包含指定對(duì)象。containsAll(List list); 判斷容器中是否包含指定集合中的所有元素。
? ? 獲取? ? size(); 獲取容器元素的數(shù)量。get(Integer index); 獲取指定位置的元素。indexOf(Object object); 獲取指定對(duì)象的位置索引,沒(méi)有返回-1。lastIndexOf(Object object); 獲取指定對(duì)象在容器中最后一次存儲(chǔ)位置的索引。
Set也是存儲(chǔ)對(duì)象的容器,可以存儲(chǔ)任意類(lèi)型的對(duì)象且長(zhǎng)度可變。
<1> Set的接口框架
? ? HashSet實(shí)現(xiàn)類(lèi)按照哈希算法來(lái)存取對(duì)象的,是無(wú)序的,不可重復(fù),但是null和"null"同時(shí)存在,會(huì)顯示[null,null],是Set接口的最優(yōu)實(shí)現(xiàn),其底層實(shí)現(xiàn)依賴(lài)于HashMap的鍵不能重復(fù)特性,
? ? TreeSet實(shí)現(xiàn)類(lèi)使用紅黑樹(shù)來(lái)存儲(chǔ)元素,實(shí)現(xiàn)了sortedSet接口,是有序存儲(chǔ)和訪問(wèn),不能寫(xiě)入null。
? ? LinkedHashSet實(shí)現(xiàn)類(lèi)也是按照哈希算法存取對(duì)象的,是有序的,不可重復(fù),但是null和"null"同時(shí)存在,會(huì)顯示[null,null],其底層依賴(lài)于LinkedHashMap。
<2> Set接口的方法
? ? 并? ? ? ? addAll(Set set); 將指定集合中的元素并入容器中,并去重。
? ? 交? ? ? ? retainAll(Set set); 將指定集合中元素與容器中元素取交集。
? ? 刪除? ? removeAll(Set set); 移除容器中與制定集合中的元素相同的元素。remove(Object object); 將指定對(duì)象從容器中移除。
? ? 判斷? ? isEmpty(); 判斷容器是否為空。contains(Object object); 判斷容器是否包含指定對(duì)象。containsAll(Set set); 判斷容器是否包含指定集合的所有元素。clear(); 清空容器中的所有元素。
? ? 獲取? ? iterator(); 遍歷容器中的元素。
Map也是存儲(chǔ)對(duì)象的容器,以鍵-值的形式存儲(chǔ)對(duì)象,鍵對(duì)象不可重復(fù)可為null,值對(duì)象可重復(fù)可為null。
<1> Map的接口框架
? ? HashMap實(shí)現(xiàn)類(lèi)按照哈希算法存取鍵對(duì)象,無(wú)序的且不可重復(fù)
? ? TreeMap實(shí)現(xiàn)類(lèi)使用紅黑樹(shù)存儲(chǔ)鍵對(duì)象,有序的
<2> Map接口的方法
? ? 獲取? ? get(Object key); 根據(jù)指定的key對(duì)象獲取容器中鍵對(duì)應(yīng)的值。entrySet(); 將容器中的所有鍵值對(duì)以key=value的形式保存在Set集合中。keySet(); 將容器中的所有鍵對(duì)象保存在Set集合中。?iterator(); 遍歷容器中的元素
? ? 添加? ? put(Object key,Object value); 將指定的鍵值對(duì)添加到容器。
? ? 刪除? ? remove(Object key); 移除容器中與指定key對(duì)象相同的鍵值對(duì)。
? ? 判斷? ? isEmpty(); 判斷容器是否為空。contains(Object object); 判斷容器是否包含指定對(duì)象。containsAll(Set set); 判斷容器是否包含指定集合的所有元素。clear(); 清空容器中的所有元素。
? ??
? ? ? ? ?
? ??
? ??
? ??
轉(zhuǎn)載于:https://www.cnblogs.com/zzb-yp/p/10384387.html
總結(jié)
以上是生活随笔為你收集整理的理解总结篇—List、Set、Map的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML5 之 简单汇总
- 下一篇: 图像处理中常见的时域与频域区别与关系