有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在不重写hashCode()的情况下删除重复项

由于企业原因我不能覆盖hashCode,我必须使用Java6(但我可以使用番石榴)

从Java集合中删除重复bean的最佳/最简单/最快/最有效/[插入不确定形容词等效于最佳]机制是什么

重复由返回相同值的getter子集定义,例如

pojoA.getVal() == pojoB.getVal() && pojoA.getOtherVal() == pojoB.getOtherVal()

共 (1) 个答案

  1. # 1 楼答案

    你可以使用一个new TreeSet<Pojo> (comparator)来实现比较器来反映你的情况(这里假设整数,但根据需要替换——对于不可比较的对象,你需要找到一个hack来返回一些整数)

    if (pojoA.getVal() != pojoB.getVal())
      return Integer.compare(pojoA.getVal(), pojoB.getVal());
    if (pojoA.getOtherVal() != pojoB.getOtherVal())
      return Integer.compare(pojoA.getOtherVal(), pojoB.getOtherVal());
    return 0;
    

    虽然没有普通哈希集那么有效,@dasblikelight建议可能更好