使用Lamda表达式、stream流遍历Map、list

简介: 使用Lamda表达式、stream流遍历Map、list

场景一、

List<String> list = new ArrayList<String>();
    Map<String,String> map = new HashMap<>();
    map.put("id","11");
    map.put("name","zhangsan");
    map.put("age","30");
    //遍历map集合
    map.forEach((k,v) -> list.add(v));
    //这几种遍历list集合的方法都可以
    list.stream().forEach(System.out::println);
    list.stream().forEach(e-> System.out.println(e));
    list.forEach(e-> System.out.println(e));

场景二、

两种方式将集合对象类型转为集合string类型

List<String> ipList = Lists.newArrayList();
List<OpsResourceTreeSelect> ops = this.parentNodeTree();
ops.forEach(obj -> ipList.add(obj.getIp()));
或者    
List<OpsResourceTreeSelect> ops = this.parentNodeTree();
List<String> ips = ops.stream().map(OpsResourceTreeSelect::getIp).collect(Collectors.toList());

场景三、

将集合中的对象,过滤指定字段并去重,最后返回一个集合string类型

List<OpsResourceList> ops = opsResourceListMapper.selectOpsResourceListList(null);
List<String> ips = ops.stream()
      .filter(obj -> StringUtils.isNotBlank(obj.getIp()))
      .map(OpsResourceList::getIp)
      .distinct()
      .collect(Collectors.toList());

返回结果

[66.3.125.44, 66.10.113.8, 66.10.113.9, 66.3.125.45, 66.66.66.66, 32.1.52.6, 66.10.113.10, 66.3.125.31, 66.3.125.35, 66.3.125.36]


目录
打赏
0
0
0
0
5
分享
相关文章
|
2月前
|
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
81 18
你对Collection中Set、List、Map理解?
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
107 4
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
75 20
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
93 2
Java|如何正确地在遍历 List 时删除元素
从源码分析如何正确地在遍历 List 时删除元素。为什么有的写法会导致异常,而另一些不会。
98 3
Java Stream中peek和map不为人知的秘密
本文通过一个Java Stream中的示例,探讨了`peek`方法在流式处理中的应用及其潜在问题。首先介绍了`peek`的基本定义与使用,并通过代码展示了其如何在流中对每个元素进行操作而不返回结果。接着讨论了`peek`作为中间操作的懒执行特性,强调了如果没有终端操作则不会执行的问题。文章指出,在某些情况下使用`peek`可能比`map`更简洁,但也需注意其懒执行带来的影响。
379 2
Java Stream中peek和map不为人知的秘密
|
5月前
|
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
52 5
|
6月前
|
Stream很好,Map很酷,但答应我别滥用toMap()!
【8月更文挑战第27天】在Java的世界里,Stream API和Map数据结构无疑是现代编程中的两大瑰宝。Stream API以其函数式编程的优雅和强大的数据处理能力,让集合操作变得简洁而高效;而Map则以其键值对的存储方式,为数据的快速检索和更新提供了便利。然而,当这两者相遇,特别是当我们试图通过Stream的toMap()方法将流中的元素转换为Map时,一些潜在的问题和陷阱便悄然浮现。今天,我们就来深入探讨一下这个话题,并探讨如何更加安全、高效地利用这些强大的工具。
98 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等