首页 > 编程语言 >Java8中遍历Map、Map转List、List转Map

Java8中遍历Map、Map转List、List转Map

时间:2023-09-19 10:12:29浏览次数:38  
标签:Map map List System println Java8 out

1.遍历Map

Map<Integer, String> map = new HashMap<>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");

// Map.keySet遍历
for (Integer k : map.keySet()) {
	System.out.println(k + " ==> " + map.get(k));
}

map.keySet().forEach(k -> System.out.println(k + " ==> " + map.get(k)));

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

map.entrySet().forEach(entry -> System.out.println(entry.getKey() + " ==> " + entry.getValue()));

// 迭代器遍历
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
	Map.Entry<Integer, String> entry = it.next();
	System.out.println(entry.getKey() + " ==> " + entry.getValue());
}

map.entrySet().iterator()
		.forEachRemaining(entry -> System.out.println(entry.getKey() + " ==> " + entry.getValue()));

// 遍历values
for (String v : map.values()) {
	System.out.println(v);
}
map.values().forEach(System.out::println);

// Lambda
map.forEach((k, v) -> System.out.println(k + " ==> " + v));


2.集合转Map

List<KeyValue> list = new ArrayList<>();
list.add(new KeyValue(1, "A"));
list.add(new KeyValue(2, "B"));
list.add(new KeyValue(3, "C"));

// 遍历
Map<Integer, String> keyValueMap = new HashMap<>();
for (KeyValue keyValue : list) {
	keyValueMap.put(keyValue.getKey(), keyValue.getValue());
}
keyValueMap.forEach((k, v) -> System.out.println(k + " ==> " + v));

//  Stream流
Map<Integer, String> map = list.stream().collect(Collectors.toMap(KeyValue::getKey, KeyValue::getValue));
map.forEach((k, v) -> System.out.println(k + " ==> " + v));

3.Map转List
class KeyValue {
	private Integer key;
	private String value;

	@Override
	public String toString() {
		return key + "{}" + value;
	}

}

Map<Integer, String> map = new HashMap<>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");

// key 转 List
List<Integer> keyList = new ArrayList<>(map.keySet());
List<Integer> keyList2 = map.keySet().stream().collect(Collectors.toList());

keyList.forEach(System.out::println);
keyList2.forEach(System.out::println);

// value 转 List
List<String> valueList = new ArrayList<>(map.values());
List<String> valueList2 = map.values().stream().collect(Collectors.toList());

valueList.forEach(System.out::println);
valueList2.forEach(System.out::println);

// Iterator转List
List<KeyValue> keyValueList = new ArrayList<>();
Iterator<Integer> it = map.keySet().iterator();
while (it.hasNext()) {
	Integer k = (Integer) it.next();
	keyValueList.add(new KeyValue(k, map.get(k)));
}

keyValueList.forEach(System.out::println);

// Java8 Stream
List<KeyValue> list = map.entrySet().stream().map(c -> new KeyValue(c.getKey(), c.getValue()))
		.collect(Collectors.toList());
list.forEach(System.out::println);

标签:Map,map,List,System,println,Java8,out
From: https://www.cnblogs.com/chillymint/p/17713884.html

相关文章

  • listview排序
    intWINAPICustomSortProc(LPARAMItem1,LPARAMItem2,LPARAMParamSort){staticboolb=true;if(b){b=false;return-CompareText(((TListItem*)Item1)->Caption,((TListItem*)Item2)->Caption);}......
  • Java并发Map的面试指南:线程安全数据结构的奥秘
    简介在计算机软件开发的世界里,多线程编程是一个重要且令人兴奋的领域。然而,与其引人入胜的潜力相伴而来的是复杂性和挑战,其中之一就是处理共享数据。当多个线程同时访问和修改共享数据时,很容易出现各种问题,如竞态条件和数据不一致性。本文将探讨如何在Java中有效地应对这些挑战,介......
  • Java并发Map的面试指南:线程安全数据结构的奥秘
    简介在计算机软件开发的世界里,多线程编程是一个重要且令人兴奋的领域。然而,与其引人入胜的潜力相伴而来的是复杂性和挑战,其中之一就是处理共享数据。当多个线程同时访问和修改共享数据时,很容易出现各种问题,如竞态条件和数据不一致性。本文将探讨如何在Java中有效地应对这些挑战,......
  • @Mapper注解、@MapperScan注解
    @Mapper作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类添加位置:mapper接口类上面@MapperpublicinterfaceUserMapper{//代码}如果想要每个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,比较麻烦,解决这个问题用@MapperScan@MapperScan作......
  • 第一题 两数之和(Map功能描述待完成)
    先是我的暴力解法(有点菜):1classSolution{2publicint[]twoSum(int[]nums,inttarget){3for(inti=0;i<nums.length-1;i++)4{5for(intj=i+1;j<nums.length;j++)6{7if(nu......
  • 从内核世界透视 mmap 内存映射的本质(原理篇)
    本文基于内核5.4版本源码讨论之前有不少读者给笔者留言,希望笔者写一篇文章介绍下mmap内存映射相关的知识体系,之所以迟迟没有动笔,是因为mmap这个系统调用看上去简单,实际上并不简单,可以说是非常复杂的一个系统调用。如果想要给大家把mmap背后的技术本质,正确地,清晰地还原......
  • 【错误异常】The content of element type "mapper" must match "(cache-ref|cache|re
    Thecontentofelementtype"mapper"mustmatch"(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|select*)+". 服务启动异常 排查mapper.xml1、标签是否完整<insert></insert><delete></delete>&l......
  • concurrent-map 和 sync.Map,我该选择哪个?
    concurrent-map和sync.Map,我该选择哪个? 轩脉刃 concurrent-map和sync.Map,我该选择哪个?官方的map并不是线程安全的,如果我们在多线程中并发对一个map进行读写操作,是会引发panic的。解决方案除了使用锁来对map进行保护外,还有两种方式:一,开源项目concurrent-map提供了......
  • 自定义注解@ValidValueList
    1、自定义注解@ValidValueList和验证器ValidValueListValidator来确保集合中的元素必须是在指定的值列表中。2、注解@ValidValueList允许你在字段或参数上标记一个集合,并为其提供一组有效的值。验证器ValidValueListValidator则用于检查集合中的元素是否都在指定的值列表......
  • 目标识别中的RP曲线、mAP指标的含义。
    RP曲线是recall和precision的曲线。他是一个能反映模型性能的曲线,通过调整阈值(在目标识别中是IOU)得到。https://zhuanlan.zhihu.com/p/92218196上面的作者给出了一个很好的动图演示。 mAP则是所有类别的RP曲线的平均包络面积。https://blog.csdn.net/qq_38375203/article/d......