Java8 Stream常用api总结(二)

接上一篇:https://blog.csdn.net/qq_37855749/article/details/113937502

public class StreamLearn2 {
    private static List<Student> list;
    static {
        list = new ArrayList<>();
        list.add(new Student(1, "小明", 18, 85L));
        list.add(new Student(2, "张三", 19, 81L));
        list.add(new Student(3, "李四", 20, 79L));
        list.add(new Student(4, "王二", 15, 90L));
        list.add(new Student(4, "王三", 18, 90L));
    }

    public static void main(String[] args) {
        //需求7: 挑选出得分最高/最低的学生名 (max、min)
        Optional<Student> max = list.stream().max((student1, student2) -> (int) (student1.getScore() - student2.getScore()));
        System.out.println(max.orElse(null));

        Optional<Student> min = list.stream().min((student1, student2) -> (int) (student1.getScore() - student2.getScore()));
        System.out.println(min.orElse(null));

        //需求8: 遍历(forEach、peek)
        // 遍历既可以用forEach、也可以用peek,作用相似,都是接受一个消费型的函数接口
        list.stream().peek(System.out::println).forEach(System.out::println);

        //需求9:随便来一个90分及以上的
        Optional<Student> any = list.stream().filter(student -> student.getScore() >= 90L).findAny();
        System.out.println(any.orElse(null));
    }
}

@Data
@AllArgsConstructor
@NoArgsConstructor
class Student{
    private Integer id;

    private String name;

    private Integer age;

    private Long score;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值