1. 程式人生 > 實用技巧 >Stream流式計算

Stream流式計算

Stream流式計算

什麼是Stream流式計算

資料處理中不可缺少的兩部分:儲存 + 計算

集合、MySQL本質就是儲存資料的,計算都應該交給流來操作!

package com.kuang.stream;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private int id;
    private String name;
    private int age;
}
package com.kuang.stream;

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

/**
 * 題目要求: 一分鐘內完成此題, 只能用一行程式碼實現
 * 現有5個使用者, 進行篩選:
 * 1. ID必須是偶數
 * 2. 年齡必須大於23歲
 * 3. 使用者名稱轉為大寫字母
 * 4. 使用者名稱字母倒著排序
 * 5. 只輸出一個使用者
 */
public class Test {
    public static void main(String[] args) {
        User u1 = new User(1, "a", 21);
        User u2 = new User(2, "b", 22);
        User u3 = new User(3, "c", 23);
        User u4 = new User(4, "d", 24);
        User u5 = new User(6, "e", 25);
        // 集合用來儲存資料
        List<User> list = Arrays.asList(u1, u2, u3, u4, u5);

        // 計算交給stream流
        list.stream()
                .filter((u) -> {return u.getId()%2 == 0;})
                .filter((u) -> {return u.getAge()>23;})
                .map((u) -> {return u.getName().toUpperCase();})
                .sorted((uu1, uu2) -> {return uu2.compareTo(uu1);})
                .limit(1)
                .forEach(System.out::println);
    }
}