List 集合根据某个字段排序,去重
排序
List<FcalcTemp> fs = new ArrayList<>();
fs.add(new FcalcTemp(new BigDecimal(0 + ""),0,2,1));
fs.add(new FcalcTemp(new BigDecimal(0 + ""),0,2,2));
fs.add(new FcalcTemp(new BigDecimal(0 + ""),0,1,3));
fs.add(new FcalcTemp(new BigDecimal(0 + ""),0,1,4));
fs.add(new FcalcTemp(new BigDecimal(0 + ""),0,2,5));
//1.
// fs.sort((x,y) -> Integer.compare(x.getO(),y.getO()));
//2.
// Collections.sort(fs, new Comparator<FcalcTemp>() {
// @Override
// public int compare(FcalcTemp o1, FcalcTemp o2) {
// return o1.getO().compareTo(o2.getO());
// }
// });
//3.
// 添加 Comparator.reverseOrder() 为倒叙,可以继续加 thenComparing()
fs.sort(Comparator.comparing(FcalcTemp::getO).thenComparing(FcalcTemp::getJ,Comparator.reverseOrder()));
for (FcalcTemp f : fs) {
System.out.println("f = " + f.getO() + "," + f.getJ());
}
// 一般集合正序
List<String> orders = new ArrayList<>(map.keySet());
Collections.sort(orders);
去重
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);