在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法。

  1. 使用 Iterator 遍历 HashMap EntrySet
  2. 使用 Iterator 遍历 HashMap KeySet
  3. 使用 For-each 循环迭代 HashMap
  4. 使用 Lambda 表达式遍历 HashMap
  5. 使用 Stream API 遍历 HashMap
1. 使用 Iterator 遍历 HashMap EntrySet
/** 
 * 在 Java 中遍历 HashMap 的5种最佳方法 
 * @author test 
 * 
 */   
public class IterateHashMapExample {
    
    public static void main(String[] args) {
    
        // 1. 使用 Iterator 遍历 HashMap EntrySet 
        Map < Integer, String > coursesMap = new HashMap < Integer, String > (); 
        coursesMap.put(1, "Java"); 
        coursesMap.put(2, "NET"); 
        coursesMap.put(3, "bootstrap"); 
        coursesMap.put(4, "Spring Framework"); 
        coursesMap.put(5, "angular"); 
 
        Iterator < Entry < Integer, String >> iterator = coursesMap.entrySet().iterator(); 
        while (iterator.hasNext()) {
    
            Entry < Integer, String > entry = iterator.next(); 
            System.out.println(entry.getKey()); 
            System.out.println(entry.getValue()); 
        } 
    } 
} 

Output:

1 
Java 
2 
NET 
3 
bootstrap 
4 
Spring Framework 
5 
angular 
2. 使用 Iterator 遍历 HashMap KeySet
/** 
 * 在 Java 中遍历 HashMap 的5种最佳方法 
 * @author test 
 * 
 */   
public class IterateHashMapExample {
    
    public static void main(String[] args) {
    
        Map < Integer, String > coursesMap = new HashMap < Integer, String > (); 
        coursesMap.put(1, "Java"); 
        coursesMap.put(2, "NET"); 
        coursesMap.put(3, "bootstrap"); 
        coursesMap.put(4, "Spring Framework"); 
        coursesMap.put(5, "angular"); 
 
        // 2. 使用 Iterator 遍历 HashMap KeySet 
        Iterator < Integer > iterator = coursesMap.keySet().iterator(); 
        while (iterator.hasNext()) {
    
            Integer key = iterator.next(); 
            System.out.println(key); 
            System.out.println(coursesMap.get(key)); 
        } 
    } 
} 

Output:

1 
Java 
2 
NET 
3 
bootstrap 
4 
Spring Framework 
5 
angular 
3. 使用 For-each 循环遍历 HashMap
/** 
 * 在 Java 中遍历 HashMap 的5种最佳方法 
 * @author test 
 * 
 */   
public class IterateHashMapExample {
    
    public static void main(String[] args) {
    
        Map < Integer, String > coursesMap = new HashMap < Integer, String > (); 
        coursesMap.put(1, "Java"); 
        coursesMap.put(2, "NET"); 
        coursesMap.put(3, "bootstrap"); 
        coursesMap.put(4, "Spring Framework"); 
        coursesMap.put(5, "angular"); 
 
        // 3. 使用 For-each 循环遍历 HashMap 
        for (Map.Entry < Integer, String > entry: coursesMap.entrySet()) {
    
            System.out.println(entry.getKey()); 
            System.out.println(entry.getValue()); 
        } 
    } 
} 

Output:

1 
Java 
2 
NET 
3 
bootstrap 
4 
Spring Framework 
5 
angular 
4. 使用 Lambda 表达式遍历 HashMap
/** 
 * 在 Java 中遍历 HashMap 的5种最佳方法 
 * @author test 
 * 
 */   
public class IterateHashMapExample {
    
    public static void main(String[] args) {
    
        Map < Integer, String > coursesMap = new HashMap < Integer, String > (); 
        coursesMap.put(1, "Java"); 
        coursesMap.put(2, "NET"); 
        coursesMap.put(3, "bootstrap"); 
        coursesMap.put(4, "Spring Framework"); 
        coursesMap.put(5, "angular"); 
 
        // 4. 使用 Lambda 表达式遍历 HashMap 
        coursesMap.forEach((key, value) -> {
    
            System.out.println(key); 
            System.out.println(value); 
        }); 
    } 
} 

Output:

1 
Java 
2 
NET 
3 
bootstrap 
4 
Spring Framework 
5 
angular 
5. 使用 Stream API 遍历 HashMap
/** 
 * 在 Java 中遍历 HashMap 的5种最佳方法 
 * @author test 
 * 
 */   
public class IterateHashMapExample {
    
    public static void main(String[] args) {
    
        Map < Integer, String > coursesMap = new HashMap < Integer, String > (); 
        coursesMap.put(1, "Java"); 
        coursesMap.put(2, "NET"); 
        coursesMap.put(3, "bootstrap"); 
        coursesMap.put(4, "Spring Framework"); 
        coursesMap.put(5, "angular"); 
 
        // 5. 使用 Stream API 遍历 HashMap 
        coursesMap.entrySet().stream().forEach((entry) - > {
    
            System.out.println(entry.getKey()); 
            System.out.println(entry.getValue()); 
        }); 
    } 
} 

Output:

1 
Java 
2 
NET 
3 
bootstrap 
4 
Spring Framework 
5 
angular 
发布评论

分享到:

IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java_JVM 级锁讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。