private List<ElectronicGoods> removeDuplicateCase(List<ElectronicGoods> cases) {
Set<ElectronicGoods> set = new TreeSet<>(new Comparator<ElectronicGoods>() {
@Override
public int compare(ElectronicGoods o1, ElectronicGoods o2) {
//字符串,则按照asicc码升序排列
return o1.getBarcode().compareTo(o2.getBarcode());
}
});
set.addAll(cases);
return new ArrayList<>(set);
}
- 如果将compareTo()返回值写死为0,元素值每次比较,都认为是相同的元素,这时就不再向TreeSet中插入除第一个外的新元素。所以TreeSet中就只存在插入的第一个元素。
- 如果将compareTo()返回值写死为1,元素值每次比较,都认为新插入的元素比上一个元素大,于是二叉树存储时,会存在根的右侧,读取时就是正序排列的。
- 如果将compareTo()返回值写死为-1,元素值每次比较,都认为新插入的元素比上一个元素小,于是二叉树存储时,会存在根的左侧,读取时就是倒序序排列的。