Java 如何比较哈希集中是否存在一对日期

Java 如何比较哈希集中是否存在一对日期,java,Java,我试图比较哈希集中是否存在一对日期 所以我的代码看起来像这样 Set<Pair<Date,Date>> datesSet = new HashSet<Pair<Date,Date>>(); for (Custom obj: List<Custom> objs) { Date startDate = obj.getStartDate(); Date endDate = obj.getEndDate(); Pair&

我试图比较
哈希集中是否存在一对日期

所以我的代码看起来像这样

Set<Pair<Date,Date>> datesSet = new HashSet<Pair<Date,Date>>();
for (Custom obj: List<Custom> objs) {
    Date startDate = obj.getStartDate();
    Date endDate = obj.getEndDate();
    Pair<Date, Date> curr = new Pair<Date,Date>(startDate, endDate);
    // I want to check if the set contains those dates by value
    if (datesSet.contains(curr) {
        // Do something with obj
    } else {
        dateSet.put(curr);
    }
} 
Set datesSet=new HashSet();
用于(自定义对象:列出对象){
Date startDate=obj.getStartDate();
Date endDate=obj.getEndDate();
对电流=新对(开始日期、结束日期);
//我想检查集合是否按值包含这些日期
如果(日期)集合包含(当前){
//用obj做点什么
}否则{
日期集.存托凭证(货币);
}
} 

这行得通吗?我怎样才能做得更好呢?

您的代码应该可以工作,因为:
javafx.util.Pair
有方法:

public boolean equals(java.lang.Object o)测试这对是否相等 用另一个物体

如果要测试的对象不是一对或为空,则此方法 返回false

当且仅当名称和 价值观是平等的

util.Date
也实现了equals


当然,如果在您的项目中,您有其他的逻辑/相等定义,那么它就不会对您起作用。

是的,它应该起作用,因为
javafx.util.Pair
您运行过它吗?它起作用吗?什么是
对呢?在Java标准库中没有这样的类。您是指javafx
Pair
afx.utilIt只有在
javafx.util.Pair
正确地实现了
hashCode
等于
的情况下才会起作用,这似乎是可行的。正如@jeroenvanevel所说的……你运行过它吗?@jeroenvanevel它是非常大的一部分……在我开始之前有很多活动的部分……所以我想在开始之前发表一点意见