欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Stream 原理和操作

程序员文章站 2022-08-18 09:42:28
1.Stream 自己不会存储元素。2.Stream 不会改变源对象,相反,他们会返回一个持有结果的新Stream。3.Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行User实体类@Datapublic class User { private int id; private String userName; private int age; }/** * @Title: Test.java * @Package:...

1.Stream 自己不会存储元素。
2.Stream 不会改变源对象,相反,他们会返回一个持有结果的新Stream。
3.Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行

Stream 原理和操作
User实体类

@Data
public class User {   
	 private int id;    
	 private String userName;    
	 private int age;   
 }

/**  
 * @Title: Test.java
 * @Package: com.example.demo1.controll
 * @Description: TODO
 * @author: 爱上深呼吸 
 * @date: 2020年5月8日 下午5:08:16
 * @version: V1.0
 */
package com.example.demo1.controll;

import java.util.Arrays;
import java.util.List;

/**
 * @ClassName: Test
 * @Description: TODO
 * @author: 爱上深呼吸
 * @date: 2020年5月8日 下午5:08:16
 */
/*
 * 题目:请按照给出数据,找出同时满足以下条件的用户 
 *       也即以下条件: 
 *          1、全部满足偶数ID 
 *          2、年龄大于24 
 *          3、用户名转为大写 
 *          4、用户名字母倒排序 
 *          5、只输出一个用户名字 limit 
 **/ 
public class Test {
	 public static void main(String[] args) {
		 		User u1 = new User(11, "a", 23);
				User u2 = new User(12, "b", 24);
				User u3 = new User(13, "c", 22);
				User u4 = new User(14, "d", 28);
				User u5 = new User(16, "e", 26);
				List<User> list = Arrays.asList(u1, u2, u3, u4, u5);
					list.stream() 
					.filter(u -> {return u.getId()%2==0;}) 
					.filter(u -> {return u.getAge()>24;})  
					.map(u -> {return u.getUserName().toUpperCase();})
					//.sorted() //默认正排序  自己用 compareTo 比较                
					.sorted((o1,o2)->{return o2.compareTo(o1);}) 
					.limit(1)
					.forEach(System.out::println);
				}
}

本文地址:https://blog.csdn.net/weixin_43834415/article/details/107674304