Map 四種獲取 key 和 value 值的方法,以及對 map 中的元素排序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
1. 獲取map的值主要有四種方法,分為兩類:? ??

調用 map.keySet() 方法來獲取 key 和 value 的值;

通過 map.entrySet() 方法來取值。

?

2. 兩者區別:

前者主要是先獲取到所有的key的集合,當你需要查詢 value 的值的時候需要通過 key 來查詢 value。

后者則直接將 key 和 value 的鍵值對直接取出來,只用查詢一次。

性能上還是 map.entrySet() 更好一點,具體請參見?map.keySet() 和 map.EntrySet() 的比較?。?

?

3. 接下來就具體介紹一下四種遍歷方法以及 map 里面的元素通過 key 或者 value 來比較大小并排序:

[java]?view plain?copy
  1. package?com.sort;??
  2. ??
  3. import?java.util.ArrayList;??
  4. import?java.util.Collections;??
  5. import?java.util.Comparator;??
  6. import?java.util.HashMap;??
  7. import?java.util.List;??
  8. import?java.util.Map;??
  9. import?java.util.Map.Entry;??
  10. ??
  11. public?class?Test?{??
  12. ??
  13. ????public?static?void?main(String[]?args)?{??
  14. ????????Map<String,String>?map?=?new?HashMap<String,String>();??
  15. ????????map.put("b","4");??
  16. ????????map.put("a","5");??
  17. ????????map.put("c","3");??
  18. ????????map.put("d","5");??
  19. ??????????
  20. ????????//通過map.keySet()方法??
  21. ????????//方法一:通過得到key的值,然后獲取value;??
  22. ????????/*for(String?key?:?map.keySet()){?
  23. ????????????String?value?=?map.get(key);?
  24. ????????????System.out.println(key+"??"+value);?
  25. ????????}*/??
  26. ????????//使用迭代器,獲取key;??
  27. ????????/*Iterator<String>?iter?=?map.keySet().iterator();?
  28. ????????while(iter.hasNext()){?
  29. ????????????String?key=iter.next();?
  30. ????????????String?value?=?map.get(key);?
  31. ????????????System.out.println(key+"?"+value);?
  32. ????????}*/??
  33. ????????//通過map.entrySet()方法??
  34. ????????//方法一:循環map里面的每一對鍵值對,然后獲取key和value??
  35. ????????/*for(Entry<String,?String>?vo?:?map.entrySet()){?
  36. ????????????vo.getKey();?
  37. ????????????vo.getValue();?
  38. ????????????System.out.println(vo.getKey()+"??"+vo.getValue());?
  39. ????????}*/??
  40. ??????????
  41. ????????/*//使用迭代器,獲取key?
  42. ????????Iterator<Entry<String,String>>?iter?=?map.entrySet().iterator();?
  43. ????????while(iter.hasNext()){?
  44. ????????????Entry<String,String>?entry?=?iter.next();?
  45. ????????????String?key?=?entry.getKey();?
  46. ????????????String?value?=?entry.getValue();?
  47. ????????????System.out.println(key+"?"+value);?
  48. ????????}*/??
  49. ??????????
  50. ????????//將map<String,String>?轉化為ArryList,但list里面的元素為Entry<String,String>??
  51. ????????List<Entry<String,String>>?list?=?new?ArrayList<Map.Entry<String,String>>(map.entrySet());??
  52. ????????Collections.sort(list,new?Comparator<Entry<String,String>>(){??
  53. ????????????@Override??
  54. ????????????public?int?compare(Entry<String,?String>?o1,??
  55. ????????????????????Entry<String,?String>?o2)?{??
  56. ????????????????int?flag?=?o1.getValue().compareTo(o2.getValue());??
  57. ????????????????if(flag==0){??
  58. ????????????????????return?o1.getKey().compareTo(o2.getKey());??
  59. ????????????????}??
  60. ????????????????return?flag;??
  61. ????????????}??
  62. ????????});??
  63. ????????//遍歷list得到map里面排序后的元素??
  64. ????????for(Entry<String,?String>?en?:?list){??
  65. ????????????System.out.println(en.getKey()+"?"+en.getValue());??
  66. ????????}??
  67. ??????????
  68. ????}??
  69. ??
  70. }??
  71. ???
  72. ?

?

轉自:http://blog.csdn.net/fishroad/article/details/47421457

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451672.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

三、【Map】

主要內容 Map集合 教學目標 能夠說出Map集合特點 使用Map集合添加方法保存數據 使用”鍵找值”的方式遍歷Map集合 使用”鍵值對”的方式遍歷Map集合 能夠使用HashMap存儲自定義鍵值對的數據 能夠使用HashMap編寫斗地主洗牌發牌案例 第一章 Map集合 1.1 概述 現實生活中&am…

五種開源協議的比較(BSD,Apache,GPL,LGPL,MIT) – 整理

當Adobe、Microsoft、Sun等一系列巨頭開始表現出對”開源”的青睞時&#xff0c;”開源”的時代即將到來&#xff01; 最初來自&#xff1a;sinoprise.com/read.php?tid-662-page-e-fpage-1.html&#xff08;遺憾的是這個鏈接已經打不開了&#xff09;&#xff0c;我基本未改…

[轉]自然語言處理中的Attention Model:是什么及為什么

自然語言處理中的Attention Model&#xff1a;是什么及為什么 https://blog.csdn.net/malefactor/article/details/50550211/* 版權聲明&#xff1a;可以任意轉載&#xff0c;轉載時請標明文章原始出處和作者信息 .*/ author: 張俊林 要是關注深度學習在自然語言處理方面…

關西旅游地名讀法學習

京都個人旅行ための自己勉強 京都篇 伏見稲荷大社「ふしみいなりだいしゃ」 京都府京都市伏見區深草にある神社。舊稱は稲荷神社 全國に約三萬社あるといわれる稲荷神社の総本社である。 初詣では近畿地方の社寺で最多の參拝者を集める。(日本第&#xff14;位)。 清水寺 「き…

jsp頁面c標簽循環map , c:foreach 循環map

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 <c:forEach items"${customerMap}" var"item"> ${item.code} ${item.name} </c:forEach> map…

JSP上下文

上下文即ServletContext,是一個全局的儲存信息的空間&#xff0c;服務器啟動&#xff0c;其就存在&#xff0c;服務器關閉&#xff0c;其才釋放。所有用戶共用一個ServletContext。所以&#xff0c;為了節省空間&#xff0c;提高效率&#xff0c;ServletContext中&#xff0c;要…

python ERROR: Cannot uninstall ‘certifi‘.

解決方法 pip install xxx --ignore-installed certifigithub參考鏈接

HDU - 6383 百度之星2018初賽B 1004 p1m2(二分答案)

p1m2 Accepts: 1003Submissions: 4595Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Problem Description度度熊很喜歡數組&#xff01;&#xff01;我們稱一個整數數組為穩定的&#xff0c;若且唯若其同時符合以下兩個條件&#xff1a…

整合營銷推廣該如何做?

思維方式太重要了&#xff0c;如果你認為你的產品只是推廣出去就好&#xff0c;推廣就能有銷量的話&#xff0c;那你大錯特錯了。本文主要的分享給創業者和企業老板的&#xff0c;如果你想做好網絡營銷推廣&#xff0c;這篇文章不看是你的損失。 首先記住&#xff1a;推廣不等于…

如何使用git命令行上傳項目到github

參考文獻&#xff1a; 如何使用git命令行上傳項目到github 感謝樓主分享&#xff01;

優質的程序員需為代碼效率而嘔心瀝血

一個好的程序員必須要為自己寫出來的代碼執行效率負責。并非僅僅實現了功能代碼就完事了。很多工作一兩年的程序員都還僅是處于實現功能代碼為榮的階段&#xff0c;不會過多去思考如何提高代碼的執行效率。有的人認為是自己的能力就這樣&#xff0c;沒有多余的能力去思考這些額…

用gson得JSON,數值變為double類型 ,去掉double值中的小數位(3.0改為3)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 項目中有個接口的數據是從緩存中讀取再組成JSON 格式返出&#xff0c;原本緩存中數據是這樣的&#xff1a; 用Gson 組成JSON 后&…

Python中的join()函數的用法

函數&#xff1a;string.join()Python中有join()和os.path.join()兩個函數&#xff0c;具體作用如下&#xff1a; join()&#xff1a; 連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串 os.path.join()&#xff1a; 將多個路…

利用微軟的平臺進行Office文檔的在線查看

微軟的預覽Office服務&#xff1a;1.在線查看&#xff1a;http://view.officeapps.live.com/op/view.aspx?src文檔地址 文檔地址用URLEncode進行處理的鏈接地址。 2.部署自己的Office預覽服務&#xff1a;需要安裝Office Web Apps服務&#xff08;系統要求為Windows Server 20…

38--合并兩個排序的鏈表

1.問題描述 輸入兩個遞增排序的鏈表&#xff0c;合并這兩個鏈表并使新鏈表中的節點仍然是遞增排序的。 實例&#xff1a; 輸入&#xff1a;1->2->4, 1->3->4 輸出&#xff1a;1->1->2->3->4->4 2.解決思路 /*** Definition for singly-linked lis…

oracle中使用sql查詢時字段為空則賦值默認

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 oracle 通過 nvl( )函數sql 查詢時為 空值 賦默認值 oracle 函數介紹之nvl 函數聲明&#xff1a;nvl(col,val) 說明&#xff1a;當col為…

BZOJ3040:最短路——題解

https://www.lydsy.com/JudgeOnline/problem.php?id3040 題意rt&#xff0c;使用pb_ds的堆解決本問題。 所以其實就是mark一下的。 不過有人確認過官方不能使用“using namespace __gnu_pbds;” #include<cmath> #include<queue> #include<cstdio> #include…