• java 中遍历Map的几种方法


    方法分为两类:

    一类是基于map的Entry;map.entrySet();

    一类是基于map的key;map.keySet()

    而每一类都有两种遍历方式:

    a.利用迭代器 iterator;

    b.利用for-each循环;

    代码举例如下:

    [java] view plaincopy
     
    1. package cn.wzb;
    2. import java.util.ArrayList;
    3. import java.util.HashMap;
    4. import java.util.Iterator;
    5. import java.util.List;
    6. import java.util.Map;
    7. import java.util.Set;
    8. import java.util.Map.Entry;
    9. //循环遍历map的方法
    10. public class TestMap {
    11. public static void main(String[] args) {
    12. Map<String, Integer> map = new HashMap<String, Integer>();
    13. map.put("a", 1);
    14. map.put("b", 2);
    15. map.put("c", 3);
    16. // JDK1.4中
    17. // 遍历方法一 hashMap.entrySet() 遍历
    18. System.out.println("方法一");
    19. Iterator<Entry<String, Integer>> it = map.entrySet().iterator();
    20. while (it.hasNext()) {
    21. Map.Entry<String, Integer> entry = it.next();
    22. String key = entry.getKey();
    23. Integer value = entry.getValue();
    24. System.out.println("key = " + key + "; value = " + value);
    25. }
    26. System.out.println("");
    27. // JDK1.5中,应用新特性For-Each循环 // 遍历方法二
    28. System.out.println("方法二");
    29. for (Map.Entry<String, Integer> entry : map.entrySet()) {
    30. String key = entry.getKey();
    31. String value = entry.getValue().toString();
    32. System.out.println("key =" + key + " value = " + value);
    33. }
    34. System.out.println("");
    35. // 遍历方法三 hashMap.keySet().iterator() 遍历
    36. System.out.println("方法三");
    37. for (Iterator<String> i = map.keySet().iterator(); i.hasNext(); ) {
    38. String key = i.next();
    39. System.out.println(" key = " + key + "; value = " + map.get(key));
    40. }
    41. /*
    42. for (Iterator<Integer> i = map.values().iterator(); i.hasNext(); ) {
    43. Integer value = i.next();
    44. System.out.println(value));// 循环输出value
    45. }
    46. */
    47. /*
    48. for(Integer value : map.values() ) {
    49. System.out.println("value = " + value);
    50. }
    51. */
    52. System.out.println("");
    53. // 遍历方法四 Hashmap.keySet()遍历
    54. System.out.println("方法四");
    55. for (String key : map.keySet()) {
    56. System.out.println("key = " + key + "; value = " + map.get(key));
    57. }
    58. System.out.println();
    59. // java如何遍历Map <String, ArrayList> map = new HashMap <String, ArrayList<Integer> >();
    60. System.out.println("java 遍历Map <String, ArrayList<Integer> map = new HashMap <String, ArrayList<Integer>>();");
    61. System.out.println("方法一:");
    62. Map<String, List<Integer> > mapList = new HashMap <String, List<Integer> >();
    63. List<Integer> list = new ArrayList<Integer>();
    64. list.add(1);
    65. list.add(2);
    66. list.add(3);
    67. list.add(4);
    68. list.add(5);
    69. mapList.put("aaa", list);
    70. mapList.put("bbb", list);
    71. Set<String> keys = mapList.keySet();
    72. Iterator<String> iterator = keys.iterator();
    73. while (iterator.hasNext()) {
    74. String key = iterator.next();
    75. System.out.println(key + " : ");
    76. List<Integer> arrayList = mapList.get(key);
    77. for (Integer i : arrayList) {
    78. System.out.print(i + ", ");
    79. }
    80. System.out.println();
    81. }
    82. System.out.println("方法二:");
    83. for (Map.Entry<String, List<Integer> > entry : mapList.entrySet()) {
    84. String key = entry.getKey();
    85. System.out.println(key + " : ");
    86. List<Integer> values = (List<Integer>) entry.getValue();
    87. for (Integer value : values) {
    88. System.out.print(value + ", ");
    89. }
    90. System.out.println();
    91. }
    92. }
    93. }
    [java] view plain copy
     
    1. package cn.wzb;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashMap;  
    5. import java.util.Iterator;  
    6. import java.util.List;  
    7. import java.util.Map;  
    8. import java.util.Set;  
    9. import java.util.Map.Entry;  
    10.   
    11. //循环遍历map的方法  
    12. public class TestMap {  
    13.     public static void main(String[] args) {  
    14.         Map<String, Integer> map = new HashMap<String, Integer>();  
    15.         map.put("a", 1);  
    16.         map.put("b", 2);  
    17.         map.put("c", 3);  
    18.           
    19.         // JDK1.4中  
    20.         // 遍历方法一 hashMap.entrySet() 遍历  
    21.         System.out.println("方法一");  
    22.         Iterator<Entry<String, Integer>> it = map.entrySet().iterator();  
    23.         while (it.hasNext()) {  
    24.             Map.Entry<String, Integer> entry =  it.next();  
    25.             String key = entry.getKey();  
    26.              Integer value = entry.getValue();  
    27.             System.out.println("key = " + key + "; value = " + value);  
    28.         }  
    29.           
    30.         System.out.println("");  
    31.           
    32.         // JDK1.5中,应用新特性For-Each循环  // 遍历方法二  
    33.         System.out.println("方法二");  
    34.         for (Map.Entry<String, Integer> entry : map.entrySet()) {  
    35.             String key = entry.getKey();  
    36.             String value = entry.getValue().toString();  
    37.             System.out.println("key =" + key + " value = " + value);  
    38.         }  
    39.         System.out.println("");  
    40.           
    41.         // 遍历方法三 hashMap.keySet().iterator() 遍历  
    42.         System.out.println("方法三");  
    43.         for (Iterator<String> i = map.keySet().iterator(); i.hasNext(); ) {  
    44.              String key = i.next();           
    45.             System.out.println(" key = " + key + "; value = " + map.get(key));  
    46.         }  
    47.           
    48.        /* 
    49.         for (Iterator<Integer> i = map.values().iterator(); i.hasNext(); ) { 
    50.             Integer value = i.next(); 
    51.             System.out.println(value));// 循环输出value 
    52.         } 
    53.         */  
    54.         /* 
    55.         for(Integer value : map.values() ) { 
    56.             System.out.println("value = " + value); 
    57.         } 
    58.         */  
    59.           
    60.           
    61.         System.out.println("");  
    62.         // 遍历方法四  Hashmap.keySet()遍历  
    63.         System.out.println("方法四");  
    64.         for (String key : map.keySet()) {  
    65.             System.out.println("key = " + key + "; value = " + map.get(key));  
    66.         }  
    67.         System.out.println();  
    68.           
    69.         // java如何遍历Map <String, ArrayList> map = new HashMap <String, ArrayList<Integer> >();  
    70.         System.out.println("java  遍历Map <String, ArrayList<Integer> map = new HashMap <String, ArrayList<Integer>>();");  
    71.         System.out.println("方法一:");  
    72.         Map<String, List<Integer> > mapList  = new HashMap <String, List<Integer> >();  
    73.         List<Integer> list = new ArrayList<Integer>();  
    74.         list.add(1);  
    75.         list.add(2);  
    76.         list.add(3);  
    77.         list.add(4);  
    78.         list.add(5);  
    79.         mapList.put("aaa", list);  
    80.         mapList.put("bbb", list);  
    81.           
    82.         Set<String> keys = mapList.keySet();  
    83.         Iterator<String> iterator = keys.iterator();  
    84.         while (iterator.hasNext()) {  
    85.             String key = iterator.next();  
    86.             System.out.println(key + " : ");  
    87.               
    88.             List<Integer> arrayList = mapList.get(key);  
    89.             for (Integer i : arrayList) {  
    90.                 System.out.print(i + ", ");  
    91.             }  
    92.             System.out.println();  
    93.         }  
    94.           
    95.         System.out.println("方法二:");  
    96.           
    97.         for (Map.Entry<String, List<Integer> > entry : mapList.entrySet()) {  
    98.             String key = entry.getKey();  
    99.             System.out.println(key + " : ");  
    100.               
    101.             List<Integer> values = (List<Integer>) entry.getValue();  
    102.             for (Integer value : values) {  
    103.                 System.out.print(value + ", ");  
    104.             }  
    105.             System.out.println();  
    106.         }  
    107.     }  
    108. }  
  • 相关阅读:
    树莓派debian配置lamp[解决Apache不显示php网页]
    centos7 mysql数据库安装和配置
    Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
    Linux从git上下东西
    在Debian/Ubuntu上面安装升级nginx到最新版
    今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的解决了这个问题。
    JavaScript 弹出框:警告(alert)、确认(confirm)的简单写法
    sql 语句实现可用户名、邮箱、手机号登录系统
    留言功能问题
    手机访问pc版网站自动跳转为手机版页面
  • 原文地址:https://www.cnblogs.com/jinhong123/p/7997659.html
Copyright © 2020-2023  润新知