java中HashMap的遍历方式

本文通过一个简单的Java代码示例展示了如何使用HashMap存储整数键和字符串值,并遍历这些条目进行打印。该示例适用于初学者理解HashMap的基本用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

贴代码:

import java.util.HashMap;

public class Test{

    public static void main(String[]args){

        HashMap<Integer, String> map = new HashMap<Integer, String>();

        map.put(1, "machi");

        map.put(2, "xiaoming");

        map.put(3, "xiaowang");

        map.put(4, "xiaoliu");

        for(int x: map.keySet()){        //递归遍历HashMap

            System.out.println("key = " + x + ", value = " + map.get(x));
    
        }
    
    }
}

 

### JavaHashMap遍历方法 #### 方法一:通过 `entrySet()` 进行迭代 这种方法通常被认为是最有效的方式之一,因为它只需要一次访问即可获得键和值。 ```java Map<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()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println("Key: " + key + ", Value: " + value); } ``` 此方法允许直接操作条目对象,在某些情况下可以提高性能[^1]。 #### 方法二:利用增强型 for 循环与 `keySet()` 这种方式先获取所有的键集合再逐一取出对应的值。虽然实现起来比较简单直观,但在每次循环体内调用了`get()`函数可能会稍微影响效率。 ```java Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); for (String key : map.keySet()) { Integer value = map.get(key); System.out.println("Key: " + key + ", Value: " + value); } ``` 该种做法适合于仅需读取而不需要修改映射的情况[^4]。 #### 方法三:借助 `values()` 获取所有值 如果只关心哈希表中的值而不涉及其关联的键,则可以直接使用这个简便的方法来快速得到全部数值列表。 ```java Map<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); } ``` 当只需处理value时推荐采用这种方案以简化逻辑。 #### 方法四:基于 Lambda 表达式的流式 API(自 JDK8 起) 对于较新的项目来说,还可以考虑应用更现代化的语言特性——即Stream API配合Lambda表达式来进行优雅且功能强大的数据处理: ```java import java.util.Map; import java.util.HashMap; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); map.forEach((k, v) -> System.out.println("Key: " + k + ", Value: " + v)); // 或者使用 Stream API 和 lambda 表达式 /* * map.entrySet().stream() * .forEach(entry -> System.out.println( * "Key: " + entry.getKey() + ", Value:" + entry.getValue())); */ } } ``` 上述代码展示了如何简洁地完成相同任务的同时还保持良好的可读性和扩展性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值