1、list根据对象中某元素去重
根据集合中对象中的ID属性去重
<T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
List<MaterialVo> materialVos = materialVos.parallelStream().filter(distinctByKey(i -> i.getId())).collect(Collectors.toList());
2、List<Map<String,Object>>排序
List<Map<String, Object>> voXAxisData = vo.getXAxisData();
//根据orders属性进行升序
Collections.sort(voXAxisData, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Integer orders1 = (Integer)o1.get("orders");
Integer orders2 = (Integer)o2.get("orders");
return orders1.compareTo(orders2);
}
});
//根据orders属性进行降序
Collections.sort(voXAxisData, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Integer orders1 = (Integer)o1.get("orders");
Integer orders2 = (Integer)o2.get("orders");
return orders2.compareTo(orders1);
}
});