Java中的无序对

时间:2012-12-22 09:04:45

标签: java data-structures

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

  • HashSet存储配对元素
  • Pair班级,覆盖hashCodeequals(使Pair(a, b)Pair(b, a)相等)。

有意义吗?你会建议什么?

1 个答案:

答案 0 :(得分:3)

在你的位置,我会推出自己的课程。只要您对仅有两个对象的集合感兴趣,使用HashMapHashSet(顺便说一下,无论如何在内部使用HashMap)或为任意集合设计的任何其他类{ {3}}浪费资源,增加了不必要的复杂性。

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

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