Java中的无序对

Mic*_*ael 5 java data-structures

我需要一个Java 泛型类来表示任何类型的无序对.同时我看到两个解决方案:

  • HashSet 存储对元素
  • 一个Pair带有覆盖的类hashCodeequals(制作Pair(a, b)Pair(b, a)等于).

是否有意义?你会建议什么?

thk*_*ala 3

我会代替你开设我自己的课程。只要您对仅包含两个对象的集合感兴趣,使用HashMap, HashSet(顺便说一句,无论如何,它HashMap在内部使用 a )或任何其他为任意基数集设计的类都会浪费资源并增加不必要的复杂性。

equals()只需使用适当的实现来创建您自己的类即可hashCode()。进行contains()操作,甚至实现部分接口Set,也可能有意义。

一个重要的注意事项:确保您广泛地记录您的类 - 至少指定是否equals()对所包含的对象执行身份比较或相等比较,以及所null包含引用的含义是什么......