Stream()

Filter

裡面放條件

沒有排序下,將符合條件的第一筆撈出來

ArrayList<ProductsReq> reqs = new ArrayList<>();
...

ProductsReq obj = reqs.stream()
        .filter(productsReq -> "A".equals(productsReq.getProductName()))
        .findFirst().get();

將符合條件的全部撈出來,裝成List

List<ProductsReq> list = reqs.stream()
        .filter(productsReq -> "Test123".equals(productsReq.getMgmId()))
        .collect(Collectors.toList());

將符合條件的全部撈出來,裝成Map

將活動名稱為 "Test123" 的 ID 當 Key,Name 當 Value。

Map<Integer, String> map = reqs.stream()
        .filter(productsReq -> "Test123".equals(productsReq.getMgmId()))
        .collect(Collectors.toMap(productsReq -> productsReq.getProduct_id(), productsReq -> productsReq.getProduct_name()));

Map

裡面放對於集合內物件的處理,後續要取得的物件

沒有排序下,取得第一筆的名稱

String s = reqs.stream()
        .map(productsReq -> productsReq.getProduct_name())
        .findFirst().get();

沒有排序下,取得第一筆的名稱,轉為全部大寫

String s = reqs.stream()
        .map(productsReq -> productsReq.getProduct_name().toUpperCase())
        .findFirst().get();

取得 產品ID 為 Key,產品底下所有卡片 為 Value 的 Map

Map<Integer, List<CardsView>> collect = reqs.stream()
        .collect(Collectors.toMap(productsReq -> productsReq.getProduct_id(), productsReq -> productsReq.getCards()));

Sorted

排序後,將最後一筆資料找出來

ProductsReq obj = reqs.stream()
        .sorted(Comparator.comparing(ProductsReq::getCreateDate).reversed())
        .findFirst().get();

Last updated