Comparator和TreeSet使用上的注意点

去重的问题。

假如说时自定义比较器,可以直接将唯一项添加到比较结果为0的if语句中

假如说是使用Comparator类的comparing方法,则属于自然比较,一定要保证比较的属性唯一,否则再set中会被去重

  public static Comparator<QyUserVo> qyUserVoComparatorOrderByRegisterDate() {
        return (o1, o2) -> {
            int date = o1.getDregisterdate().compareTo(o2.getDregisterdate()); //较早的时间排在前面
            if (date != 0) {
                return date;
            } else {
                return o1.getPk_user().compareTo(o2.getPk_user()); //注意不能省去主键,否则会被去重
            }
        };
    }
            flowEntities = Sets.newTreeSet(Comparator.comparing(QyFlowEntity::flowDate));

 

posted @ 2018-12-18 15:27  紫霄馆  阅读(1465)  评论(0编辑  收藏  举报