示例如下:
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方法用于映射每个元素到对应结果 userList.stream().map(e->{ e.setAge(e.getAge()+5); return e; }).collect(Collectors.toList()); userList.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; } }