Java 8 Stream 使用
JAVA stream 使用
2023-09-27 14:25:30 时间
示例如下:
package com.stream; import java.util.*; import java.util.stream.Collectors; /** * @author: void * @date: 2021-10-21 18:09 * @description: * @version: 1.0 */ public class Stream { public static void main(String[] args) { List<User> userList = getUserList(); //foreach来迭代流的数据,迭代输出 System.out.println("----------------forEach()------------------"); userList.forEach(System.out::println); System.out.println("----------------map()------------------"); //map方法用于映射每个元素到对应结果 List users = userList.stream().map(e->{ User user = new User(); user.setName(e.getName()); user.setAge(e.getAge()+5); return e; }).collect(Collectors.toList()); users.forEach(System.out::println); //取userlist中每个实体的name字段组成list List<String> nameList = userList.stream().map(e->e.getName()).collect(Collectors.toList()); nameList.forEach(System.out::println); System.out.println("---------------filter()-------------------"); //filter 方法用于通过设置的条件过滤出元素。 List<User> userList2 = userList.stream().filter(user -> { return user.getAge()>=23; }).collect(Collectors.toList()); userList2.forEach(System.out::println); System.out.println("----------------limit()------------------"); //limit 方法用于获取指定数量的流 List<User> userList3 = userList.stream().limit(1).collect(Collectors.toList()); userList3.forEach(System.out::println); //sorted用于对流进行排序 System.out.println("----------------sorted()------------------"); List list = Arrays.asList(2,3,4,1).stream().sorted().collect(Collectors.toList()); list.forEach(System.out::println); System.out.println("----------------distinct()------------------"); //distinct 去掉集合内重复元素 List list1 = Arrays.asList(1,1,4,5,6,7,8,6).stream().distinct().collect(Collectors.toList()); System.out.println(list1); //Collectors System.out.println("-----------------collect(Collectors.xxx)-----------------"); //返回列表,上述示例都是返回列表 //返回字符串 Collectors.joining() String names=userList.stream().map(e->e.getName()).collect(Collectors.joining(",")); System.out.println(names); //返回Map Collectors.toMap() Map<String,User> nameMap=userList.stream().collect(Collectors.toMap(User::getName, user -> {return user;})); //如果userList里面存在相同的key会报错,传入合并方法 (u,v)->u :当key相同时,取第一个 Map<String,User> nameMap2=userList.stream().collect(Collectors.toMap(User::getName, user -> {return user;}, (u,v)->u)); System.out.println(nameMap2); } /** * 获取用户列表 * @return */ public static List<User> getUserList(){ List<User> users = new ArrayList<>(); User user = null; for(int i=0;i<3;i++){ user = new User("测试"+i,17+i,0); users.add(user); } return users; } }
相关文章
- .Net使用DES加密,.Net和java分别解密,并正则匹配替换加密密码为明文
- Java 8 使用 Stream 把 List 转换为 map
- MessagePack Java Jackson 在不关闭输出流(output stream)的情况下序列化多变量
- java设计模式--结构型模式--桥接模式
- java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
- Upgrading to Java 8——第四章 The Stream API
- 什么是 Java 对象深拷贝?
- java基础(11)函数重载以及函数递归求和
- JAVA知识回顾之Java8 Stream入门
- java 类字面常量,泛化的Class引用
- HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
- Java超级简单的对集合排序方法Stream.sorted ()
- Java抽象类
- Java 基础(Stream APl) 二
- Java Stream常见用法汇总,开发效率大幅提升
- 8000字长文让你彻底了解 Java 8 的 Lambda、函数式接口、Stream 用法和原理
- java项目编码格式转换(如GBK转UTF-8)
- Stream In Java
- java设计优化--观察者模式
- Java 使用Stream I/O(InputStream/OutputStream)读写文件的方法及示例代码
- Java Stream Collectors.groupingBy实现对List(列表)进行分组的方法
- Hbase 基本操作用 在java 上的实现
- JAVA混合使用函数式接口(BiPredicate和Consumer)、泛型、lambda表达式、stream流,优化List求交集和差集后的通用处理