HashMap的四种遍历

本文详细介绍了在Java中遍历HashMap的四种常见方法,包括使用keySet迭代器、增强for循环遍历keySet、使用Entry迭代器以及增强for循环遍历Entry。通过具体代码示例,展示了每种方法的具体实现过程。

啦啦啦!我又来了!这一周长安疯狂下雨,我人傻了,拿伞的时候不下,没有带伞就暴雨。
话说天气预报这准确率,真就一直五五开呗,害!!
在这里插入图片描述

遍历hashmap
package HW;

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

public class bianli {

	public static void T1(Map<Integer, String> map) {
		// keyset迭代器
		Set<Integer> keys = map.keySet();
		Iterator<Integer> its = keys.iterator();
		while (its.hasNext()) {
			Integer k = its.next();
			String v = map.get(k);
			System.out.println(k + "====" + v);
		}
	}

	public static void T2(Map<Integer, String> map) {
		// keyset的增强for
		Set<Integer> keys1 = map.keySet();
		for (Integer key : keys1) {
			String value = map.get(key);
			System.out.println(key + ">====>" + value);
		}
	}

	public static void T3(Map<Integer, String> map) {
		// Entry的迭代器
		Set<Entry<Integer, String>> entrys = map.entrySet();
		Iterator<Entry<Integer, String>> it = entrys.iterator();
		while (it.hasNext()) {
			Entry entry = it.next();
			System.out.println(entry.getKey() + "----" + entry.getValue());
		}
	}

	public static void T4(Map<Integer, String> map) {
		// Entry的增强for
		Set<Entry<Integer, String>> entrys = map.entrySet();
		for (Entry<Integer, String> entry : entrys) {
			System.out.println(entry.getKey() + ">---->" + entry.getValue());
		}

	}

	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "bdd");
		map.put(2, "faker");
		map.put(3, "clid");
		map.put(4, "ruler");
		T1(map);
		T2(map);
		T3(map);
		T4(map);	
	}	
}

结果展示:

在这里插入图片描述
溜了

HashMap遍历从大的方向来说,可分为迭代器(Iterator)方式遍历、For Each 方式遍历、Lambda 表达式遍历(JDK 1.8+)、Streams API 遍历(JDK 1.8+),这里主要介绍迭代器方式遍历 HashMap 的方法。 HashMap 中的迭代器是内部类 EntryIterator,它继承自另外一个内部类 HashIterator,并且实现了 Iterator 接口(部分方法是在父类中实现的),迭代的主要代码存在于 HashIterator 这个类中 [^3]。 以下为使用迭代器遍历 HashMap 的几种常见方式及示例代码: ### 遍历键 ```java import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class IteratorKeyExample { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("cherry", 3); Iterator<String> keyIterator = map.keySet().iterator(); while (keyIterator.hasNext()) { String key = keyIterator.next(); System.out.println(key); } } } ``` ### 遍历值 ```java import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class IteratorValueExample { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("cherry", 3); Iterator<Integer> valueIterator = map.values().iterator(); while (valueIterator.hasNext()) { Integer value = valueIterator.next(); System.out.println(value); } } } ``` ### 遍历键值对 ```java import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class IteratorEntryExample { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("cherry", 3); Iterator<Map.Entry<String, Integer>> entryIterator = map.entrySet().iterator(); while (entryIterator.hasNext()) { Map.Entry<String, Integer> entry = entryIterator.next(); System.out.println(entry.getKey() + " : " + entry.getValue()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值