【java基礎】之lambda表達式

1,Stream(管道)

1. 什麼是Stream
(1)Stream在Java8中被定義爲泛型接口
(2)Stream代表的是數據流
(3)Stream不是一個數據結構,不直接存儲結構
(4)Stream通過管道操作數據
(5)創建一個stream接口實現類的對象(stream stream = person.stream();)
(6)管道代表一個操作序列


2. java中雙冒號::的功能
JDK8中有雙冒號的用法,就是把方法當做參數傳到stream內部,使stream的每個元素都傳入到該方法裏面執行一下。


2,filter(過濾器)

  • 統計student中名字包含"小"字或"白"字的並計算他們的平均年齡

@Test
    public void test3() {
        List<Student> students = AddStudent.add();
        double average = students.stream()
                .filter(student -> student.getName().indexOf("小") >= 0 || student.getName().indexOf("白") >= 0)
                .mapToDouble(Student::getAge)
                .average()
                .getAsDouble();
        System.out.println(average);

    }

  • 把一個list轉化爲另一個list集合
//    遍歷原始的集合,並把這個集合轉化爲另一個集合。
    @Test
    public void conver(){
        Student student = new Student("王宇",22, Sex.MAN);
//        利用stream.of把此流轉化爲list集合
        List<Student> studentList = Stream
                .of(student)
                .collect(Collectors.toList());
//        把上一個list集合打成了另一個list集合,遍歷並輸出
        studentList
                .stream()
                .map(Student::getAge)
                .collect(Collectors.toList())
                .forEach(s -> System.out.println(s));
    }

一看就懂的lambda表達式源碼


覺得爲時已晚,恰恰是最早的時候。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章