使用TreeMap,它是NavigableMap(Java 6或更高版本)。
假設你有項key->value
(10->1, 100->1, 200->2, 500->2, 1000->3, 5000->3)
floorEntry(15)
將返回10->1
ceilingEntry(15)
將返回100->1
有了這個,你能確定區間數的15,這是1 您還可以確定如果一個數字在間隔之間。
編輯:添加例子
TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
map.put(10, 1);
map.put(100, 1);
map.put(200, 2);
map.put(500, 2);
map.put(1000, 3);
map.put(5000, 3);
int lookingFor = 15;
int groupBelow = map.floorEntry(lookingFor).getValue();
int groupAbove = map.ceilingEntry(lookingFor).getValue();
if (groupBelow == groupAbove) {
System.out.println("Number " + lookingFor + " is in group " + groupBelow);
} else {
System.out.println("Number " + lookingFor +
" is between groups " + groupBelow + " and " + groupAbove);
}
不,他們不會。而間隔的值也可能不是連續的,所以得到那些間隔的鍵不會有幫助。 –
使用算法是不夠的? – ollins
這些值/間隔更改。有時候我有更多的時間間隔有時少。 –