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
Was this helpful?