java - 为什么自定义比较器不能与hashSet一起使用以检查重复的对象[关闭]

原文 标签 java eclipse hashset

我在mobile类中定义了比较器进行比较。比较标准,我使用了mobile的id字段。
eclipse显示第一个错误(hashset):(语法错误),而对于treeset,它工作得很好。

HashSet<Mobile> mobileSet = new HashSet(new Mobile().new Comparator())
    TreeSet<Mobile> ts = new TreeSet<Mobile>(new Mobile().new Comparator());

有人能帮我一下吗?
因此,要使用hashset,我需要重写基类(mobile)中的equals和hashcode

最佳答案

HashSet<Mobile> mobileSet = new HashSet(new Mobile().new Comparator())

让我们列举出这行代码的几个错误:
它缺少结尾分号(您的“语法错误”);
它在new HashSet上缺少泛型类型参数(或菱形运算符);
它使用的构造函数参数类型与HashSet(Collection<? extends E> coll)不兼容。
HashSet的javadoc解释了散列集是如何工作的。应该很容易意识到这与Comparators无关。

相关文章:

java - 幻象断点让我发疯!

java - 如何通过在休眠中使用DitachedCriteria对名称的List <User>进行排序? [重复]

java - 为什么`root`保持为空?

java - Eclipse中的西里尔符号

java - 使用OSGi启动JUnit测试时出现IllegalStateException

java - org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator在Eclipse中生成的Java文件

c# - 棘手的算法……在嵌套HashSet中找到子集的多个组合吗?

java - 关于收集框架

java - 用对应于HashSet的固定键创建一个HashMap。出发点

java - Android-显示不带EditText的数字键盘