在 Java 中遍历 HashMap


要遍历 HashMap,请使用 Iterator。HashMap 类使用散列表实现 Map 接口。这使得基本操作(如 get( ) 和 put( ))的执行时间保持不变,即使对于大型集合也是如此。

以下是遍历 HashMap 的代码:

示例

import java.util.*;
public class Main {
   public static void main(String args[]) {
      HashMap hashMap = new HashMap();
      hashMap.put("John", new Integer(10000));
      hashMap.put("Tim", new Integer(25000));
      hashMap.put("Adam", new Integer(15000));
      hashMap.put("Katie", new Integer(30000));
      hashMap.put("Jacob", new Integer(45000));
      hashMap.put("Steve", new Integer(23000));
      hashMap.put("Nathan", new Integer(25000));
      hashMap.put("Amy", new Integer(27000));
      Set set = hashMap.entrySet();
      Iterator iterator = set.iterator();
      while(iterator.hasNext()) {
         Map.Entry map = (Map.Entry)iterator.next();
         System.out.print(map.getKey() + ": ");
         System.out.println(map.getValue());
      }
      System.out.println();
      System.out.println("Size of IdentintyHashMap: "+hashMap.size());
      int bonus = ((Integer)hashMap.get("Amy")).intValue();
      hashMap.put("Amy", new Integer(bonus + 5000));
      System.out.println("Amy's salary after bonus = " + hashMap.get("Amy"));
      int deductions = ((Integer)hashMap.get("Steve")).intValue();
      hashMap.put("Steve", new Integer(deductions - 3000));
      System.out.println("Steve's salary after deductions = " + hashMap.get("Steve"));
   }
}

输出

Adam: 15000
Nathan: 25000
Katie: 30000
Steve: 23000
John: 10000
Tim: 25000
Amy: 27000
Jacob: 45000
Size of IdentintyHashMap: 8
Amy's salary after bonus = 32000
Steve's salary after deductions = 20000

您还可以使用 for-each 循环遍历 HashMap。keySet() 和 values() 方法在这里分别用于显示键和值。现在,我们来看另一个示例,其中我们将使用 for-each 遍历 HashMap:

示例

import java.util.HashMap;
public class Main {
   public static void main(String[] args) {
      HashMap<String, String> students = new HashMap<String, String>();
      students.put("John", "Maths");
      students.put("Tim", "Political Science");
      students.put("Steve", "English");
      students.put("Nathan", "Science");
      for (String s : students.keySet()) {
         System.out.println("key= " + s + ", value= " + students.get(s));
      }
   }
}

输出

key= Nathan, value= Science
key= Steve, value= English
key= John, value= Maths
key= Tim, value= Political Science

更新于:20-Sep-2019

1 千次以上浏览

开启你的 职业生涯

完成课程获得认证

开始
广告