java8-循環およびフィルタリングケース

  • forEachの
    jsonArray.stream().forEach(jsonObject->{
            JSONObject o = (JSONObject) jsonObject;
            //todo 操作对象 o
        });
    
  • フィルタ
    • 濾過後、セットの新しいセットを生成し、
    List<SysDictData> DictList = list.stream()
                   .filter(a -> goods.getGoodsUnit().equals(a.getDictLabel()))
                   .collect(Collectors.toList());
    
    • リストの重複除外
    List<GoodsSkuHistory> list = skuHistories.stream()
    			.filter(distinctByKey(o->o.getGoodsSkuId())).collect(Collectors.toList());
    /**
     * 去重使用
     * @param keyExtractor
     * @param <T>
     * @return
     */
    public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
    	return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }
公開された16元の記事 ウォンの賞賛0 ビュー2460

おすすめ

転載: blog.csdn.net/dengdai123654/article/details/103951405