首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Set<LocalDate>包含LocalDate最佳实践

Set<LocalDate>包含LocalDate最佳实践
EN

Stack Overflow用户
提问于 2017-08-22 09:36:21
回答 1查看 1.5K关注 0票数 2

我有:

代码语言:javascript
复制
ZoneId gmt = ZoneId.of("GMT");
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDateNow = localDateTime.toLocalDate();

Set<LocalDate> hollidays = new HashSet<>();

我能像这样和LocalDate一样吗?

代码语言:javascript
复制
if(hollidays.contains(localDateNow)){
...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-22 09:42:25

可以,停那儿吧。

如果您查看一下LocalDate::equals()实现,您将能够看到:

代码语言:javascript
复制
int compareTo0(LocalDate otherDate) {
    int cmp = (year - otherDate.year);
    if (cmp == 0) {
        cmp = (month - otherDate.month);
        if (cmp == 0) {
            cmp = (day - otherDate.day);
        }
    }
    return cmp;
}

这看起来像一个正确实现的日期的equals方法-这意味着它将与HashSet的正确工作。

摘录自hashCode()文档:

如果两个对象根据equals(Object)方法相等,那么对两个对象中的每个对象调用hashCode方法都必须产生相同的整数结果。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45813991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档