【发布时间】:2012-06-26 16:14:22
【问题描述】:
我不知道这是否可能,但我正在尝试创建一个哈希表,其中 Interval 是一个具有 2 个整数/长值、一个开始和一个结束的类,我想做这样的事情:
Hashtable<Interval, WhateverObject> test = new Hashtable<Interval, WhateverObject>();
test.put(new Interval(100, 200), new WhateverObject());
test.get(new Interval(150, 150)) // returns the new WhateverObject i created above because 150 is betwwen 100 and 200
test.get(new Interval(250, 250)) // doesn't find the value because there is no key that contains 250 in it's interval
所以基本上我想要的是 Interval 对象中一系列值之间的键给出对应的 WhatObject。我知道我必须在区间对象中覆盖 equals() 和 hashcode(),我认为的主要问题是让所有值在 100 到 200 之间(在这个特定示例中)以提供相同的哈希。
如果可以的话,有什么想法吗?
谢谢
【问题讨论】:
-
一张地图中的间隔是否总是相同的?
-
基本上我正在尝试做一个字幕系统,其中范围将是每个提示点的开始和结束,所以我希望中间值获得相同的字幕对象。间隔不会改变,但它们在字幕之间有孔。
-
那么你的
Hashtable键是一个整数还是代表一个区间的两个整数? -
是的,间隔的开始和结束将匹配字幕提示点的开始和结束。没有间隔碰撞,它们之间只有空洞。