天天看點

【JUC程式設計進階】Stream流式計算

package Stremtesrt;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName demo1.java
 * @Description TODO
 * @createTime 2021年05月31日 21:11:00
 */
public class demo1 {
    /**
     * 1.id必須是偶數
     * 2.年齡必須大于23
     * 3.使用者名轉化為大寫
     * 4.使用者名字倒着排序
     * 5.隻輸出一個使用者
     * @param args
     */
    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> userList = Arrays.asList(u1,u2,u3,u4,u5);

        // 計算交給stream流
       userList.stream().filter(u -> { return u.getId() % 2 == 0;}).filter(u->{return u.getAge()>23;}).map(u->{return u.getName().toUpperCase();}).sorted((u,uu)->{return uu.compareTo(u);}).limit(1).forEach(System.out::println);
    }
}
class User{
    private int id;
    private String name;
    private int age;

    public User() {
    }

    public User(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}