去重方法:
1、
TreeSet<Record> treeSet2 = list.stream()、.collect(Collectors.toCollection(() -> new TreeSet<>
(Comparator.comparing(Record::getPi))));
List<Record> newDishList = new ArrayList<>(treeSet2);
newDishList.forEach(d -> System.out.println("id:" + d.getPi() + ", name:" + d.getPnn()));
2、简化:
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Record :: getPi))), ArrayList::new));
3、
TreeSet<Record> treeSet2 = new TreeSet<>();
treeSet2 = new TreeSet<>(Comparator.comparing(Record::getPi));
treeSet2.addAll(list);
List<Record> newDishList = new ArrayList<>(treeSet2);
以上方法如果对象中有null值,都会造成空指针,因此:
Set<VctRecord> set = new TreeSet<Record>(new Comparator<Record>() {
@Override
public int compare(Record a, VctRecord b) {
if(a.getPi() == null || b.getPi() == null) {
return 0;
}
return a.getPi().compareTo(b.getPi());
}
});
set.addAll(list);
ArrayList<Record> vctRecords = new ArrayList<>(set);