排序
sortScore = sortScore.stream()
.sorted(Comparator.comparing((Double o1) -> o1).reversed())
.collect(Collectors.toCollection(LinkedHashSet::new));
函数式排序(正序 and 逆序)
public static void itemSort(List<Map<String, Object>> mapList, String order_key, String sort) {
if (sort.equals("desc")) {
mapList.sort(Comparator.comparingDouble(item -> (Double) item.get(order_key)));
Collections.reverse(mapList);
} else if (sort.equals("asc")) {
mapList.sort(Comparator.comparingDouble(item -> (Double) item.get(order_key)));
}
}
求最大值
Double sortFirst = sortScore.stream().max(Double::compare).get();
list 转set
Set<String> tempMap = effectiveCoupon.parallelStream().map(CouponStatusInfo::getActivityId).collect(Collectors.toSet());
foreach 使用
effectiveCoupon.stream().forEach(couponInfo -> {
String activityId = couponInfo.getActivityId();
Long startTime = couponInfo.getStartTime();
Long endTime = couponInfo.getEndTime();
}
});
过滤
originAllItems = originAllItems.stream().filter(item -> {
return true;
}).collect(Collectors.toList());
List 先去重再去重,顺序去重
// 先根据a 去重,后根据b去重
final List<Map<String, Object>> returnFilterItems = items.stream().
filter(distinctByKey1(item -> item.get("a").toString()))
.filter(distinctByKey1(item -> item.get("b").toString())).collect(Collectors.toList());
static <T> Predicate<T> distinctByKey1(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}