日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕亚洲第一 | 黑色丝袜吻戏亲胸摸腿 | 中文字幕3| 人妻无码中文字幕免费视频蜜桃 | 日韩精品毛片 | 韩国女主播一区 | 成人av在线一区二区 | 国产亚洲不卡 | 亚洲二级片 | 国产一区二区三区成人 | 日本免费黄色网址 | 精品久久久久亚洲 | 91沈先生在线 | 色香影视| 一区二区三区四区精品视频 | 国产原创视频 | 99久久国产热无码精品免费 | 午夜在线免费观看 | 国产做爰免费观看 | 男生和女生差差视频 | 五月天av网 | 99久久精品无码一区二区毛片 | 国产精品天美传媒沈樵 | 蜜桃成人网 | 国产福利久久久 | 老师的肉丝玉足夹茎 | 久久一级大片 | 日本欧美视频 | 91吃瓜在线| 日韩一区二区免费视频 | 国产羞羞 | 一区二区成人免费视频 | 91精品国产一区二区 | 丰满肉肉bbwwbbww | 岛国片免费在线观看 | 成人无码精品1区2区3区免费看 | 免费成人在线看 | 国产亚洲精品久久久久久无几年桃 | 亚洲久草视频 | 欧美日本中文字幕 | 国产精品腿扒开做爽爽爽挤奶网站 | 射死你天天日 | 国产美女作爱全过程免费视频 | 免费一级肉体全黄毛片 | 永久免费未满 | 奇米影视四色777 | 日韩成人在线播放 | 国产欧美自拍 | 白石茉莉奈中文字幕在 | 激情在线视频 | 未满十八岁禁止进入 | 亚洲欧美日韩偷拍 | 乱日视频 | jizz一区 | 爱爱视频欧美 | 6080电视影片在线观看 | 亚洲天堂网在线观看 | 麻豆传媒网页 | 欧美大喷水吹潮合集在线观看 | 日本人三级| 国产区欧美区日韩区 | 在线观看免费国产视频 | 夜夜躁很很躁日日躁麻豆 | 午夜不卡久久精品无码免费 | 欧美高清大白屁股ass18 | 国产91精品看黄网站在线观看 | 日韩中文字幕在线 | 黄色网址大全免费 | 人体一级片 | 成人一区二区三区仙踪林 | 日本一区二区欧美 | 久久久高清免费视频 | 色欲一区二区三区精品a片 在线观看黄网站 | 麻豆国产av超爽剧情系列 | 亚洲国产欧美另类 | 久久99久久99精品免观看软件 | 中国毛片基地 | 亚洲老女人视频 | 亚洲一区二区三区在线看 | 91久久国语露脸精品国产高跟 | 3d动漫精品啪啪一区二区免费 | 91成人动漫 | 国产福利精品在线观看 | 久色电影| 日产久久视频 | 久久久久久久一区二区三区 | 国产日韩欧美亚洲 | 99er久久 | 自拍偷拍在线播放 | 极品探花在线播放 | 日韩欧美理论 | 国产在线拍揄自揄拍 | 欧美xo影院 | 人妻一区二区三区四区 | 伊人22| 91片看| 欧美日韩一区二区三区免费 | 精品一区久久 | 午夜久久久久久噜噜噜噜 |