Java遍历Map对象有哪些方式呢?

乔欣 Java经验 发布时间:2023-02-17 17:43:09 阅读数:7374 1
下文笔者讲述java遍历Map对象的方法分享,如下所示

Map简介

Map是一个接口 
   常见的Map实现类
     如下所示:HashMap, TreeMap, LinkedHashMap, Hashtable等

map接口中提供以下方法,如:
   map.keySet();//键集合
   map.values();//值集合
   map.entrySet();//键值集合
循环Map,笔者借助以上的集合信息,然后对其进行遍历
 即可实现遍历Map对象
   下文是笔者收集的遍历Map的方法,如下所示

方法1:foreach对entrySet来遍历
public static void method1EntrySet(Map<String, Object> map) {
        System.out.println(" 第一种方式 entrySet ");
//        当map为空,就不执行for循环体
//        map = new HashMap<>();
        Set<Map.Entry<String, Object>> set2 = map.entrySet();
        for (Map.Entry<String, Object> entry : set2) {
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }
        System.out.println("---- method2EntrySet done ----");
    }

方法2:for-each循环中遍历keys或values

public static void main(String[] args) {
	Map<String, String> map = new HashMap<>();
	map.put("id", "8888");
	map.put("name", "maomao");
	map.put("age", "18");
   
	System.out.println("使用增强for循环:");
	for (String key : map.keySet()) {
		System.out.println("k=" + key + ",v=" + map.get(key));
	}
	for (String v : map.values()) {
		System.out.println("value=" + v);
	}
}

方法3:使用迭代器Iterator遍历

public static void methodIterator(Map<String, Object> map) {
	System.out.println(" 第三种遍历方式 method4Iterator");
	Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator();
	while (entries.hasNext()) {
		Map.Entry<String, Object> entry = entries.next();
		System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
	}
}

方法4:通过键找值遍历

public static void methodGetKey(Map<String, Object> map) {
	System.out.println(" 方式4: methodGetKey ");
	Set<String> keSet = map.keySet();
	for (Iterator<String> iterator = keSet.iterator(); iterator.hasNext(); ) {
		String key = iterator.next();
		System.out.println(key + " value: " + map.get(key));
	}
}

方法5:使用Lambda表达式

private static void methodLambda(Map<String, Object> map) {
System.out.println("使用Lambda表达式进行遍历:");
map.forEach((key, value) -> System.out.println("key:value = " + key + ":" + value));
System.out.println("使用Lambda表达式遍历key:");
map.keySet().forEach(key ->
System.out.println(" key==>" + key + ",对应的value==>" + map.get(key)));
System.out.println("使用Lambda表达式遍历value:");
map.values().forEach(value -> System.out.println(value));
}

方法6:使用jdk8的foreach方法

private static void methodBiConsumer(Map<String, String> map) {
    System.out.println("使用Java 8的forEach进行遍历:");
    map.forEach(new BiConsumer<String, String>() {
        @Override
        public void accept(String key, String value) {
            System.out.println("k=" + key + ",v=" + value);
        }
    });
}

方法7:使用jdk8中的Stream流

private static void methodStream(Map<String, String> map) {
	System.out.println("使用stream流进行遍历:");
	map.entrySet().stream().forEach((Map.Entry entry) -> {
		System.out.println(entry.getKey());
		System.out.println(entry.getValue());
	});
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16766270275831.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者