Java 8中stream相关用法
jdk1.8新加了lambda表達(dá)式,可以幫助開發(fā)者更好的,更高效的實(shí)現(xiàn)一些通常復(fù)雜的代碼實(shí)現(xiàn)
1.list轉(zhuǎn)換map
Map<Integer, String> mappedMovies = ghslist.stream().collect( Collectors.toMap(SaleStaticsGhsResp::getShop_saleman_id, (p) -> p.getName()));
2.從實(shí)體中取出id集合,去重
List<Integer> list = page.stream().filter(m->m.getId()>0).map(k -> k.getId()).distinct().collect(Collectors.toList());
3.遍歷一個(gè)list,和另一個(gè)list對(duì)比,取出id相同的每個(gè)實(shí)體
SaleMan sale = saleList.stream().filter(e -> e.getId().intValue() == olm.getSm_saleman_id()).findFirst().orElse(null);
4.排序(先按第一個(gè)字段排序,如果排序字段相等,在按第二個(gè)字段排序)
Comparator<SpreadActivityResp> comparator0 =(b, a) -> a.getCreate_time().compareTo(b.getCreate_time());
?
resultList.sort(comparator0);
?
Comparator<SpreadActivityResp> comparator = comparator0.thenComparing((a,b) -> b.getCreate_time().compareTo(a.getCreate_time()));
?
for (CartGoodsInfo info : shop.getGoodsInfoList()) {
?
? ? cartList.add(info.getCartInfo());
?
? ? info.getPriceInfoList().sort((a, b) -> {
?
? ? return a.getMinCount().compareTo(b.getMinCount());
?
});
?
priceList.addAll(info.getPriceInfoList());
?
}
?
list_order_goods.sort((a,b)->{return Integer.valueOf(a.getId()).compareTo(b.getId());});
5.根據(jù)某個(gè)id獲取list中和這個(gè)id相同的實(shí)體
List<Price> pricelist = pricesList.stream().filter(k -> {return skuListId.contains(k.getSku_id());}).collect(Collectors.toList());
?
List<SearchOrderGoodsResp> unzpList = list_order_goods.stream().filter(m->m.getIs_giveaway() == 0).distinct().collect(Collectors.toList());
?
---------------------?
作者:yinghuananhai?
來源:CSDN?
原文:https://blog.csdn.net/YingHuaNanHai/article/details/81273059?
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的Java 8中stream相关用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThreadPoolExecutor源码
- 下一篇: 常用集合类的使用