亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java遍歷List、Map、Set方法以及比較

2019-11-11 06:51:43
字體:
來源:轉載
供稿:網友

一、java遍歷List

1、方法一:普通for循環

for( int i = 0 ; i < list.size() ; i++) {//內部不鎖定,效率最高,但在多線程要考慮并發操作的問題。    System.out.PRintln(list.get(i));}2、方法二:增強for循環

for(String str : list) {//其內部實質上還是調用了迭代器遍歷方式,這種循環方式還有其他限制,不建議使用。    System.out.println(str);}
3、方法三:迭代器遍歷
Iterator<String> iter = list.iterator();while(iter.hasNext()){  //執行過程中會執行數據鎖定,性能稍差,若在循環過程中要去掉某個元素只能調用iter.remove()方法。    System.out.println(iter.next());}--------------------------------------------------------------------------------------------------------------------------

二、java遍歷Map

1、方法一:在for-each循環中使用entries來遍歷這是最常見也是大多數情況下最可取的方式,在鍵值都需要時使用。Map<Integer, Integer> map = new HashMap<Integer, Integer>();    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {        System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());    } 2、方法二:在for-each循環中遍歷keys或values

如果只需要map中的鍵或者值,你可以通過keySet或values來實現遍歷,而不是用entrySet。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();    //遍歷map中的鍵    for (Integer key : map.keySet()) {        System.out.println("Key = " + key);    }    //遍歷map中的值    for (Integer value : map.values()) {        System.out.println("Value = " + value);    } 

該方法比entrySet遍歷在性能上稍好(快了10%),而且代碼更加干凈。

3、方法三:通過鍵找值的方式(效率低)

Map<Integer, Integer> map = new HashMap<Integer, Integer>();    for (Integer key : map.keySet()) {        Integer value = map.get(key);        System.out.println("Key = " + key + ", Value = " + value);    }作為方法一的替代,這個代碼看上去更加干凈;但實際上它相當慢且無效率。因為從鍵取值是耗時的操作(與方法一相比,在不同的Map實現中該方法慢了20%~200%)。如果你安裝了FindBugs,它會做出檢查并警告你關于哪些是低效率的遍歷。所以盡量避免使用。

4、方法四:使用Iterator遍歷

(1)使用泛型:

Map<Integer, Integer> map = new HashMap<Integer, Integer>();    Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();    while (entries.hasNext()) {        Map.Entry<Integer, Integer> entry = entries.next();        System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());    } (2)不使用泛型

Map map = new HashMap();    Iterator entries = map.entrySet().iterator();    while (entries.hasNext()) {        Map.Entry entry = (Map.Entry) entries.next();        Integer key = (Integer)entry.getKey();        Integer value = (Integer)entry.getValue();        System.out.println("Key = " + key + ", Value = " + value);    } 

你也可以在keySet和values上應用同樣的方法。

該種方式看起來冗余卻有其優點所在。首先,在老版本java中這是惟一遍歷map的方式。另一個好處是,你可以在遍歷時調用iterator.remove()來刪除entries,另兩個方法則不能。根據javadoc的說明,如果在for-each遍歷中嘗試使用此方法,結果是不可預測的。

從性能方面看,該方法類同于for-each遍歷(即方法二)的性能。

map總結:

如果僅需要鍵(keys)或值(values)使用方法二。如果你使用的語言版本低于java 5,或是打算在遍歷時刪除entries,必須使用方法四。否則使用方法一(鍵值都要)。

三:java遍歷Set

1、方法一:迭代器循環Set<String> set = new HashSet<String>();  Iterator<String> it = set.iterator();  while (it.hasNext()) {    String str = it.next();    System.out.println(str);  }  2、方法二:for-each循環for (String str : set) {        System.out.println(str);  }      優點還體現在泛型 假如 set中存放的是Object    Set<Object> set = new HashSet<Object>();  for循環遍歷:  for (Object obj: set) {        if(obj instanceof Integer){                  int aa= (Integer)obj;               }else if(obj instanceof String){                 String aa = (String)obj               }                ........  }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品久久久久久久男人的天堂| 欧美中文字幕视频| 日韩av网站大全| 欧美电影免费在线观看| 亚洲精品suv精品一区二区| 久久久噜噜噜久久中文字免| 最近更新的2019中文字幕| 欧美夫妻性视频| 97视频在线播放| 久久精品91久久香蕉加勒比| 日韩激情第一页| 亚洲精品美女久久久| 欧美大全免费观看电视剧大泉洋| 亚洲成人在线网| 九九综合九九综合| 91天堂在线视频| 亚洲免费一在线| 国产+成+人+亚洲欧洲| 亚洲国产欧美一区二区三区同亚洲| 最近2019年日本中文免费字幕| 91高清免费视频| 精品国产91久久久久久| 日韩欧美国产一区二区| 国产成+人+综合+亚洲欧美丁香花| 尤物九九久久国产精品的分类| 欧美巨猛xxxx猛交黑人97人| 日韩最新av在线| 91精品国产综合久久香蕉的用户体验| 亚洲国产第一页| 成人黄色大片在线免费观看| 精品无人区乱码1区2区3区在线| 亚洲精品福利在线观看| 国产99视频在线观看| 亚洲福利在线播放| 亚洲人精品午夜在线观看| 久久精品国产亚洲一区二区| 亚洲国产成人精品久久久国产成人一区| 精品国产电影一区| 欧美午夜精品在线| 国产成人精品视| 精品一区二区三区三区| 亚洲人成电影在线观看天堂色| 亚洲精品国产suv| 国产亚洲人成网站在线观看| 中文国产亚洲喷潮| 91精品在线观看视频| 久久久这里只有精品视频| 国产成人91久久精品| 久久中国妇女中文字幕| 久久综合伊人77777| 国产成人免费av电影| 国自产精品手机在线观看视频| www.久久色.com| 成人亚洲欧美一区二区三区| 国内免费久久久久久久久久久| 97色伦亚洲国产| 91丝袜美腿美女视频网站| 亚洲性生活视频| 久久在线免费视频| 伊人亚洲福利一区二区三区| 亚洲国产精品成人精品| 亚洲欧美日韩中文在线| 裸体女人亚洲精品一区| 中文字幕免费国产精品| 91久久国产综合久久91精品网站| 欧美激情精品久久久久久大尺度| 国产一区二区黄| 91精品久久久久久久久不口人| 情事1991在线| 一个人www欧美| 九色精品免费永久在线| www.久久撸.com| 国产精品av电影| 日韩av在线免费| 久久香蕉精品香蕉| 高清欧美一区二区三区| 欧美成人免费一级人片100| 国产精品视频永久免费播放| 91sa在线看| 国产精品久久久久免费a∨大胸| 欧美成人免费一级人片100| 俺也去精品视频在线观看| 国产精品极品在线| 亚洲欧洲免费视频| 午夜精品福利电影| 日韩欧美精品网址| 久久久久久久久久久av| 国产不卡一区二区在线播放| 亚洲美女av黄| 久久精品国产精品| 日本久久精品视频| 欧美电影免费在线观看| 国产精品成人v| 97国产精品人人爽人人做| 精品久久久久久久久久久久久| 91av成人在线| 一区二区国产精品视频| 欧美另类在线观看| 欧美高跟鞋交xxxxxhd| 精品国产1区2区| 日韩久久午夜影院| 国内免费久久久久久久久久久| 亚洲一区二区三区成人在线视频精品| 精品无人国产偷自产在线| 国产一级揄自揄精品视频| 日韩成人网免费视频| 欧美亚洲第一页| 日韩欧美在线播放| 高清欧美电影在线| 亚洲深夜福利网站| 性欧美办公室18xxxxhd| 欧美国产日韩精品| 欧美日在线观看| 久久免费少妇高潮久久精品99| 日本一欧美一欧美一亚洲视频| 中文字幕日韩免费视频| 欧美精品在线免费观看| 国产精品久久久av久久久| 欧美中文字幕视频在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 2018中文字幕一区二区三区| 国产精品91在线观看| 久久久精品国产亚洲| 欧美亚洲激情在线| 国产日产欧美精品| 国产va免费精品高清在线| 欧洲成人在线视频| 欧美激情视频一区二区| 欧美—级高清免费播放| 97精品欧美一区二区三区| 热久久99这里有精品| 欧美资源在线观看| 神马国产精品影院av| 久久久亚洲国产天美传媒修理工| 国产日韩欧美另类| 中文字幕亚洲一区二区三区| 欧美高清在线视频观看不卡| 欧美性理论片在线观看片免费| 性欧美xxxx| 成人免费在线视频网站| 91香蕉亚洲精品| 国产精品视频久久久久| 欧美日韩亚洲国产一区| 国产成人亚洲综合91精品| 日韩精品视频在线免费观看| 91亚洲精品一区| 欧美色道久久88综合亚洲精品| 亚洲欧美中文日韩v在线观看| 欧美激情a在线| 久久久这里只有精品视频| 欧美噜噜久久久xxx| 亚洲精品www| 欧美在线视频免费播放| 欧美极品在线播放| 国内精品久久久久久久久| 成人a级免费视频| 日韩国产一区三区| 国产精品一香蕉国产线看观看| 欧美日韩中文在线| 亚洲午夜精品久久久久久久久久久久| 18一19gay欧美视频网站| 欧美大尺度电影在线观看| 国产色婷婷国产综合在线理论片a| 亚洲成色777777女色窝|