我正在用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);
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。