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 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行
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
上一篇: MySQL中锁的分类