加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Enum作为HashTable的关键

发布时间:2020-12-14 19:18:04 所属栏目:Java 来源:网络整理
导读:我正在用Java编写Schedule结构. 我有一个Hashtable,枚举日为关键,时间范围列表为值. 像这样 : public enum Day { SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY }private Hashtable 其中TimeRanges类是 public class TimeRanges implements Li

我正在用Java编写Schedule结构.
我有一个Hashtable,枚举日为关键,时间范围列表为值.
像这样 :

public enum Day {
    SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY 
}

private Hashtable

其中TimeRanges类是……

public class TimeRanges implements List

当我向_appleCalendar添加元素时,我这样做:

public void addApplyDay(Day day,TimeRanges trs) {
    if (! _applyCalendar.contains(day)) {
        _applyCalendar.put(day,trs);
    } else {
        for ( TimeRange t : trs) {
            _applyCalendar.get(day).add(t);
        }
    }

}

我的问题是方法contains()不能正常工作.
HashTable无法在哈希表中找到现有元素,所有时间都输入第一个条件:S

有没有办法做到这一点,而不应该将Day声明为类并实现comareTo()??

最佳答案
我想你想使用.containsKey()而不是contains(). contains()将搜索实际对象,而containsKey()将搜索键.

public void addApplyDay(Day day,TimeRanges trs) {
    if (! _applyCalendar.containsKey(day)) { // << use containsKey
        _applyCalendar.put(day,trs);
    } else {
        for ( TimeRange t : trs) {
            _applyCalendar.get(day).add(t);
        }
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读