如何在Java中为无序对写一个集合
发布时间:2020-12-14 05:17:59 所属栏目:Java 来源:网络整理
导读:我需要一个Set(HashSet),这样如果我插入一对(a,b)并且if(b,a)已经在集合中,则插入将被忽略.如何用 Java做到这一点? 非常感谢! 解决方法 好吧,它取决于你的Pair类的hashCode()和equals()方法.他们需要忽略秩序. 设置本身就是一个忽略等式顺序的类的一个很好
我需要一个Set(HashSet),这样如果我插入一对(a,b)并且if(b,a)已经在集合中,则插入将被忽略.如何用
Java做到这一点?
非常感谢! 解决方法
好吧,它取决于你的Pair类的hashCode()和equals()方法.他们需要忽略秩序.
设置本身就是一个忽略等式顺序的类的一个很好的例子 – 你可以查看 public class UnorderedPair<T> { private final Set<T> set; public UnorderedPair(T a,T b) { set = new HashSet<T>(); set.add(a); set.add(b); } public boolean equals(Object b) { //...delegate to set } public int hashCode() { return set.hashCode(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |