HashMap的几种常见遍历方式

1. 使用 entrySet 遍历

entrySet 返回包含映射中所有键值对的集合,可以通过增强 for 循环遍历这个集合。

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);

        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }
}

2. 使用 keySet 遍历

keySet 返回所有键的集合,可以通过增强 for 循环遍历键,然后通过键获取对应的值。

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);

        for (String key : map.keySet()) {
            System.out.println("Key: " + key + ", Value: " + map.get(key));
        }
    }
}

3. 使用 values 遍历

values 返回所有值的集合,可以直接遍历这个集合(通常用于仅需要值的情况)。

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);

        for (Integer value : map.values()) {
            System.out.println("Value: " + value);
        }
    }
}

4. 使用 Iterator 遍历

可以使用迭代器遍历 entrySet,这种方式提供了在遍历过程中删除元素的能力。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);

        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
            // 如果需要删除元素,可以使用 iterator.remove() 方法
        }
    }
}

5. 使用 forEach 方法(Java 8 及以上) 

Java 8 引入了 forEach 方法,可以通过 lambda 表达式遍历 HashMap

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);

        map.forEach((key, value) -> {
            System.out.println("Key: " + key + ", Value: " + value);
        });
    }
}

6、总结 

以上展示了五种遍历 HashMap 的方法,每种方法都有其适用的场景:

  • entrySet:同时需要键和值的情况。
  • keySet:只需要键或需要键后获取值的情况。
  • values:只需要值的情况。
  • Iterator:需要在遍历过程中删除元素的情况。
  • forEach:使用 Java 8 及以上版本的简洁遍历方式。
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HashMap遍历方式有多种,其中最常见的有以下几种: 1. 使用迭代器(Iterator)进行遍历: ```java HashMap<Integer, String> map = new HashMap<>(); // 添加元素到map Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<Integer, String> entry = iterator.next(); Integer key = entry.getKey(); String value = entry.getValue(); // 处理key和value } ``` 2. 使用for-each循环遍历: ```java HashMap<Integer, String> map = new HashMap<>(); // 添加元素到map for (Map.Entry<Integer, String> entry : map.entrySet()) { Integer key = entry.getKey(); String value = entry.getValue(); // 处理key和value } ``` 3. 遍历所有的键(key): ```java HashMap<Integer, String> map = new HashMap<>(); // 添加元素到map for (Integer key : map.keySet()) { String value = map.get(key); // 处理key和value } ``` 4. 遍历所有的值(value): ```java HashMap<Integer, String> map = new HashMap<>(); // 添加元素到map for (String value : map.values()) { // 处理value } ``` 根据性能方面来说,使用迭代器进行遍历是最高效的方式,因为它在遍历过程中不需要创建额外的对象。而使用for-each循环遍历遍历所有的键(key)以及遍历所有的值(value)都需要创建额外的迭代器对象,可能会稍微降低性能。但是在实际使用中,这些差异一般是可以忽略的,可以根据代码的可读性和简洁性选择合适的遍历方式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值