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