1. 程式人生 > 其它 >ambda表示式、鏈式程式設計、函式式介面、Stream流計算綜合

ambda表示式、鏈式程式設計、函式式介面、Stream流計算綜合

ambda表示式、鏈式程式設計、函式式介面、Stream流計算綜合

題目要求:一分鐘內完成此題,只能用一行程式碼實現!現在有5個使用者!篩選:
1、ID必須是偶數
2、年齡必須大於23歲
3、使用者名稱轉為大寫字母
4、使用者名稱字母倒著排序
5、只輸出一個使用者

package StreamA;


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


/**題目要求:一分鐘內完成此題,只能用一行程式碼實現!現在有5個使用者!篩選:
 1、ID必須是偶數
 2、年齡必須大於23歲
 3、使用者名稱轉為大寫字母
 4、使用者名稱字母倒著排序
 5、只輸出一個使用者
 * @author liu
 */
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);
        User u6 = new User(8,"f",26);
        //集合就是儲存
        List<User>list= Arrays.asList(u1,u2,u3,u4,u5,u6);
        //計算交給stream流
        //lambda表示式、鏈式程式設計、函式式介面、Stream流計算
        list.stream()
                .filter((a)->{return a.getID()%2==0;})
                .filter((a)->{return a.getAge()>23;})
                .map((u)->{return u.getName().toUpperCase();})
                .sorted((o1,o2)->{return o2.compareTo(o1);})
                .limit(1)
                .forEach(System.out::println);
    }
}
Use屬性
package StreamA;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**生成get/set/toString方法
 * 無參構造
 * 有參構造
 * @author liu
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private int ID ;
    private String Name;
    private  int age;
}