java8-lambda的简单实例

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Lambda {
    public static  void  main(String[] args){
        List<Student> studentList = new ArrayList<Student>();
        Student s1 = new Student("zhang",20,1,3,90);
        Student s2 = new Student("li",23,1,0,91);
        Student s3 = new Student("guo",16,1,0,99);
        Student s4 = new Student("wu",18,3,0,94);
        Student s5 = new Student("liu",28,3,0,95);
        Student s6 = new Student("yu",22,2,0,93);
        Student s7 = new Student("ren",24,2,1,93);
        Student s8 = new Student("guo",15,2,2,99);
        studentList.add(s1);
        studentList.add(s2);
        studentList.add(s3);
        studentList.add(s4);
        studentList.add(s5);
        studentList.add(s6);
        studentList.add(s7);
        studentList.add(s8);

        //1.遍历循环
        studentList.forEach(student -> System.out.println(student));
        System.out.println("---------------------------------------------------------------------------");
        //结果
        /**
         * Student{name='zhang', age=20, classroom=1, sort=3, grade=90}
         * Student{name='li', age=23, classroom=1, sort=0, grade=91}
         * Student{name='guo', age=16, classroom=1, sort=0, grade=99}
         * Student{name='wu', age=18, classroom=3, sort=0, grade=94}
         * Student{name='liu', age=28, classroom=3, sort=0, grade=95}
         * Student{name='yu', age=22, classroom=2, sort=0, grade=93}
         * Student{name='ren', age=24, classroom=2, sort=1, grade=93}
         * Student{name='guo', age=15, classroom=2, sort=2, grade=99}
         */

        //2.判断条件(如果箭头函数前后只有一行代码时,可以简写)
        List<Student> students = studentList.stream().filter((student) -> {
            return student.getClassroom() == 1;
        }).collect(Collectors.toList());
        students.forEach(student -> System.out.println(student));
        System.out.println("---------------------------------------------------------------------------");
        /**
         * Student{name='zhang', age=20, classroom=1, sort=3, grade=90}
         * Student{name='li', age=23, classroom=1, sort=0, grade=91}
         * Student{name='guo', age=16, classroom=1, sort=0, grade=99}
         */

        List<Student> collect = studentList.stream().filter(student -> student.getClassroom() == 2).collect(Collectors.toList());
        collect.forEach(student -> System.out.println(student));
        System.out.println("---------------------------------------------------------------------------");
        /**
         * Student{name='yu', age=22, classroom=2, sort=0, grade=93}
         * Student{name='ren', age=24, classroom=2, sort=1, grade=93}
         * Student{name='guo', age=15, classroom=2, sort=2, grade=99}
         */


        //3.使用map获取其中某一属性
        studentList.stream().map(student -> student.getClassroom()).forEach(System.out::println);
        /**结果
         * 1
         * 1
         * 1
         * 3
         * 3
         * 2
         * 2
         * 2
         */

        //4.进行排序方法一
        System.out.println("--------------------------------使用减法排序班级-------------------------------------------");
        studentList.stream().sorted((student1,student2)->{
            return  student1.getClassroom()-student2.getClassroom();
        }).forEach(System.out::println);

        /**
         * Student{name='zhang', age=20, classroom=1, sort=3, grade=90}
         * Student{name='li', age=23, classroom=1, sort=0, grade=91}
         * Student{name='guo', age=16, classroom=1, sort=0, grade=99}
         * Student{name='yu', age=22, classroom=2, sort=0, grade=93}
         * Student{name='ren', age=24, classroom=2, sort=1, grade=93}
         * Student{name='guo', age=15, classroom=2, sort=2, grade=99}
         * Student{name='wu', age=18, classroom=3, sort=0, grade=94}
         * Student{name='liu', age=28, classroom=3, sort=0, grade=95}
         */

        //compareTo排序
        System.out.println("--------------------------------按照班级的排序compareTo------------------------------------------");
        studentList.stream().sorted(
                (stdent1,student2)->stdent1.getClassroom().compareTo(student2.getClassroom())
        ).forEach(System.out::println);
        /**
         * Student{name='zhang', age=20, classroom=1, sort=3, grade=90}
         * Student{name='li', age=23, classroom=1, sort=0, grade=91}
         * Student{name='guo', age=16, classroom=1, sort=0, grade=99}
         * Student{name='yu', age=22, classroom=2, sort=0, grade=93}
         * Student{name='ren', age=24, classroom=2, sort=1, grade=93}
         * Student{name='guo', age=15, classroom=2, sort=2, grade=99}
         * Student{name='wu', age=18, classroom=3, sort=0, grade=94}
         * Student{name='liu', age=28, classroom=3, sort=0, grade=95}
         */


        System.out.println("-------------------------------------按照sort进行的排序compareTo-------------------------------------");
        studentList.stream().sorted((student1,student2)->student1.getSort().compareTo(student2.getSort())).forEach(System.out::println);
        /**结果
         * Student{name='li', age=23, classroom=1, sort=0, grade=91}
         * Student{name='guo', age=16, classroom=1, sort=0, grade=99}
         * Student{name='wu', age=18, classroom=3, sort=0, grade=94}
         * Student{name='liu', age=28, classroom=3, sort=0, grade=95}
         * Student{name='yu', age=22, classroom=2, sort=0, grade=93}
         * Student{name='ren', age=24, classroom=2, sort=1, grade=93}
         * Student{name='guo', age=15, classroom=2, sort=2, grade=99}
         * Student{name='zhang', age=20, classroom=1, sort=3, grade=90}
         */

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值