日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA学习之常用集合List,Set,Map

發布時間:2024/10/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA学习之常用集合List,Set,Map 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

常用的集合有List,Set,Map,這三個都是接口,
其中List,和Set繼承于Collection
而Map是一個可以保存鍵值對的接口

Collection接口
Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。
一些 Collection允許相同的元素而另一些不行。一些能排序而另一些不行。
Java SDK不提供直接繼承自Collection的類,Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。

所有實現Collection接口的類都必須提供兩個標準的構造函數:無參數的構造函數用于創建一個空的Collection,
有一個 Collection參數的構造函數用于創建一個新的Collection,這個新的Collection與傳入的Collection有相同的元素。
后一個構造函數允許用戶復制一個Collection。

如何遍歷Collection中的每一個元素?不論Collection的實際類型如何,它都支持一個iterator()的方法,該方法返回一個迭代子,使用該迭代子即可逐一訪問Collection中每一個元素。典型的用法如下:
Iterator it = collection.iterator(); // 獲得一個迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一個元素
}
由Collection接口派生的兩個接口是List和Set。

List接口,List接口常用的兩個實現類是LinkedList類和ArrayList類
List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置。用戶能夠使用索引(元素在List中的位置,類似于數組下標)來訪問List中的元素,這類似于Java的數組。
和下面要提到的Set不同,List允許有相同的元素。
除了具有Collection接口必備的iterator()方法外,List還提供一個listIterator()方法,
返回一個 ListIterator接口,和標準的Iterator接口相比,
ListIterator多了一些add()之類的方法,允許添加,刪除,設定元素, 還能向前或向后遍歷?!?/p>

LinkedList類
LinkedList實現了List接口,允許null元素。此外LinkedList提供額外的get,remove,insert方法在 LinkedList的首部或尾部。
這些操作使LinkedList可被用作堆棧(stack),隊列(queue)或雙向隊列(deque)。
LinkedList類采用鏈表結構保存對象,這種結構的優點是便于向集合中插入和刪除對象,經常需要向集合中插入/刪除對象時,使用此類
效率會比較好,但對于隨機訪問集合中的對象,則會較慢.

ArrayList類
ArrayList實現了可變大小的數組。它允許所有元素,包括null??梢愿鶕饕恢脤线M行快速的隨機訪問,缺點是向指定的索引位置
插入對象或刪除對象的時候速度較慢,size,isEmpty,get,set方法運行時間為常數。
實例化方法如下:
List<String> list=new ArrayList<String>();

總結:基于Array的List適合查詢,而LinkedList(鏈表)適合添加,刪除操作。

Set接口
Set是一種不包含重復的元素的Collection,即任意的兩個元素e1和e2都有e1.equals(e2)=false,Set最多有一個null元素。
很明顯,Set的構造函數有一個約束條件,傳入的Collection參數不能包含重復的元素。
Set接口常用的實現類有HashSet和TreeSet.
實例化方法如下:
Set<String> set1=new HashSet<String>();
Set<String> set2=new TreeSet<String>();
Set 集合中的元素是不能重復的,而且是無序的,遍歷Set集合元素的時候,有可能與插入Set元素時候的順序并不一樣
遍歷Set集合的方法時,可以用For循環,
或者用Collection接口的iterator()方法取得迭代器來遍歷

Map接口
請注意,Map沒有繼承Collection接口,Map提供key到value的映射。
一個Map中不能包含相同的key,每個key只能映射一個 value。
Map接口提供3種集合的視圖,Map的內容可以被當作一組key集合,一組value集合,或者一組key-value映射。
即Map接口遍歷的時候常用到的三個方法:
entrySet()
返回 Set<Map.Entry<K,V>>此映射中包含的映射關系的 Set 視圖。

keySet()
返回Set<K> 此映射中包含的鍵的 Set 視圖。

values()
返回Collection<V>此映射中包含的值的 Collection 視圖。

Map接口常用的實現類有HashMap和TreeMap.通常建議使用HashMap,因為HashMap類實現的對于添加和刪除的行為
效率更高.HashMap是基于哈希表的Map接口的實現.
而TreeMap中的映射存在一定的順序,如果希望Map集合中的對象存在一定的順序,那就使用TreeMap類

HashMap允許使用Null值和Null的元素,但是要求鍵的唯一性,此類不保證集合的順序,特別是不保證該順序恒久不變
TreeMap類不僅實現的Map接口,還實現了SortedMap接口,因此該類的集合中具有一定的順序.但是在添加.刪除和定位的時候,
性能會比HashMap類差一些.由于TreeMap類實現的Map集合中的映射關系是根據鍵對象按照一定的順序排序的.因為不允許鍵的對象是Null
實現的應用中,可以通過HashMap類創建Map集合,當需要順序輸出的時候,再創建一個鍵值對相同的映射關系的TreeMap類,然后輸出

練習代碼示例:

import java.util.*; class test { public static void main(String[] args){ List<String> d=new LinkedList<String>(); d.add("aaa"); d.add("bbb"); d.add("ccc"); d.add("ddd"); d.add("eee"); Set<String> set=new HashSet<String>(); set.add("1"); set.add("1"); set.add("1"); set.add("1"); set.addAll(d); set.add("2"); Set<String> intset=new TreeSet<String>(); intset.add("1"); intset.add("2"); intset.add("3"); intset.add("4"); intset.add("5"); intset.add("6"); Iterator<String> i=intset.iterator(); while(i.hasNext()) { System.out.println(i.next()); } Map<String,String> map=new HashMap<String,String>(); map.put("1","11"); map.put("2","22"); map.put("3","33"); map.put("4","44"); for(int l=1;l<map.size();l++){ System.out.println(map.get(""+l+"")+""); } Collection<String> vv=map.values(); Iterator<String> vvi=vv.iterator(); while(vvi.hasNext()){ System.out.println(vvi.next()); } Set<String> keySet=map.keySet(); vvi=keySet.iterator(); while(vvi.hasNext()){ System.out.println(map.get(vvi.next())); } } }

平時集合使用的比較多,熟悉集合類,有時會意想不到的效果哦.

?

轉載于:https://www.cnblogs.com/fylx/p/3961530.html

總結

以上是生活随笔為你收集整理的JAVA学习之常用集合List,Set,Map的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧美成人一区二区三区 | 成人交性视频免费看 | 一区免费在线观看 | 国产又粗又猛又黄 | 超碰999| 亚洲熟妇无码av | 免费无遮挡无码永久在线观看视频 | 久久中文字幕国产 | 91看片网| 成人午夜视频免费在线观看 | 国产永久免费 | 欧美韩日一区二区 | 成 人 黄 色 片 在线播放 | 91中文字幕在线视频 | 老司机免费精品视频 | 两个女人互添下身爱爱 | 激情999 | 秋霞毛片少妇激情免费 | 91亚洲影院 | 懂色一区二区三区 | 69日本xxxxxxxxx30 在线波多野结衣 | 日韩专区在线观看 | av福利站 | 国产乱欲视频 | 人人射视频| 免费观看在线视频 | 黄色成年视频 | 91麻豆视频在线观看 | 黄色片免费在线观看 | 亚洲色图国产精品 | 国产无套精品一区二区三区 | 国产999精品 | 日日av| 午夜综合 | 日韩欧美高清dvd碟片 | 日本a在线免费观看 | 日韩精品免费一区二区三区竹菊 | 久久精品视频一区二区三区 | 波多野结衣加勒比 | 日韩欧美精品一区二区 | 日韩欧美a级片 | 午夜免费播放观看在线视频 | 国产成人在线免费 | 亚洲美女久久 | 久久99国产综合精品免费 | 欧美大喷水吹潮合集在线观看 | 国产美女裸体无遮挡免费视频 | 污污网站在线免费观看 | 狠狠搞av | 性色av一区二区三区四区 | 无遮挡边吃摸边吃奶边做 | 鲁丝av| 欧美亚洲欧美 | 欧美精品一区二区不卡 | 男人天堂亚洲天堂 | 国产精品swag | 亚洲视频精品一区 | 国产区一区二区 | 久久性生活视频 | 神马久久影院 | 肥老熟妇伦子伦456视频 | 无码精品人妻一区二区三区湄公河 | 黄色网战大全 | 欧美劲爆第一页 | 久草三级 | 深夜免费在线视频 | 青娱网电信一区电信二区电信三区 | 欧美一级淫片免费 | 91久久久久久久久 | 美日韩av| 日本69视频 | 狠狠干狠狠干狠狠干 | 91热久久| 国产一二在线观看 | 综合色小说 | 免费视频一区二区 | 亚洲成人精 | 九九热视频免费观看 | 女同二区 | 欧美福利一区二区三区 | 成年人免费网站在线观看 | 免费爱爱视频网站 | 饥渴放荡受np公车奶牛 | 一本色道久久综合亚洲精品图片 | 黄色特级一级片 | 黄色在线观看免费视频 | 黄色av网址大全 | 色哟哟视频在线 | 四色成人 | 激情二区 | 国产精品日韩电影 | 刘玥91精选国产在线观看 | 中文字幕一区二区视频 | 99国产精品久久久久久久久久久 | 免费极品av一视觉盛宴 | 午夜国产福利视频 | 深爱激情丁香 | 少妇无码一区二区三区 | 双性受孕h堵精大肚生子 |