生活随笔
收集整理的這篇文章主要介紹了
Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
1. 獲取map的值主要有四種方法,分為兩類:? ??
調(diào)用 map.keySet() 方法來(lái)獲取 key 和 value 的值;
通過(guò) map.entrySet() 方法來(lái)取值。
?
2. 兩者區(qū)別:
前者主要是先獲取到所有的key的集合,當(dāng)你需要查詢 value 的值的時(shí)候需要通過(guò) key 來(lái)查詢 value。
后者則直接將 key 和 value 的鍵值對(duì)直接取出來(lái),只用查詢一次。
性能上還是 map.entrySet() 更好一點(diǎn),具體請(qǐng)參見(jiàn)?map.keySet() 和 map.EntrySet() 的比較?。?
?
3. 接下來(lái)就具體介紹一下四種遍歷方法以及 map 里面的元素通過(guò) key 或者 value 來(lái)比較大小并排序:
[java]?view plain?copy
package?com.sort;????import?java.util.ArrayList;??import?java.util.Collections;??import?java.util.Comparator;??import?java.util.HashMap;??import?java.util.List;??import?java.util.Map;??import?java.util.Map.Entry;????public?class?Test?{????????public?static?void?main(String[]?args)?{??????????Map<String,String>?map?=?new?HashMap<String,String>();??????????map.put("b","4");??????????map.put("a","5");??????????map.put("c","3");??????????map.put("d","5");????????????????????//通過(guò)map.keySet()方法??????????//方法一:通過(guò)得到key的值,然后獲取value;??????????/*for(String?key?:?map.keySet()){?????????????String?value?=?map.get(key);?????????????System.out.println(key+"??"+value);?????????}*/??????????//使用迭代器,獲取key;??????????/*Iterator<String>?iter?=?map.keySet().iterator();?????????while(iter.hasNext()){?????????????String?key=iter.next();?????????????String?value?=?map.get(key);?????????????System.out.println(key+"?"+value);?????????}*/??????????//通過(guò)map.entrySet()方法??????????//方法一:循環(huán)map里面的每一對(duì)鍵值對(duì),然后獲取key和value??????????/*for(Entry<String,?String>?vo?:?map.entrySet()){?????????????vo.getKey();?????????????vo.getValue();?????????????System.out.println(vo.getKey()+"??"+vo.getValue());?????????}*/????????????????????/*//使用迭代器,獲取key?????????Iterator<Entry<String,String>>?iter?=?map.entrySet().iterator();?????????while(iter.hasNext()){?????????????Entry<String,String>?entry?=?iter.next();?????????????String?key?=?entry.getKey();?????????????String?value?=?entry.getValue();?????????????System.out.println(key+"?"+value);?????????}*/????????????????????//將map<String,String>?轉(zhuǎn)化為ArryList,但list里面的元素為Entry<String,String>??????????List<Entry<String,String>>?list?=?new?ArrayList<Map.Entry<String,String>>(map.entrySet());??????????Collections.sort(list,new?Comparator<Entry<String,String>>(){??????????????@Override??????????????public?int?compare(Entry<String,?String>?o1,??????????????????????Entry<String,?String>?o2)?{??????????????????int?flag?=?o1.getValue().compareTo(o2.getValue());??????????????????if(flag==0){??????????????????????return?o1.getKey().compareTo(o2.getKey());??????????????????}??????????????????return?flag;??????????????}??????????});??????????//遍歷list得到map里面排序后的元素??????????for(Entry<String,?String>?en?:?list){??????????????System.out.println(en.getKey()+"?"+en.getValue());??????????}????????????????}????}??????
?
轉(zhuǎn)自:http://blog.csdn.net/fishroad/article/details/47421457
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。