- lowerEntry(K key) : K < key
- floorEntry(K key) : K <= key
- ceilingEntry(K key) : K >= key
- higherEntry(K key) : K > key
指定の値以上のデータをループしてとる。みたいなことをやりたい場合はこんな感じ。
public static void main(String[] args) {
NavigableMap<Integer, String> map = new TreeMap<Integer, String>();
for (int i = 1; i < 10; i++) {
int key = (int) Math.pow(2, i);
String value = String.format("key is %d", key);
map.put(key, value);
}
// [2, 4, 8, 16, 32, 64, 128, 256, 512]
int next = 50;
Map.Entry<Integer, String> entry;
while ((entry = map.higherEntry(next)) != null) {
System.out.printf("key=%d value=%s\n", entry.getKey(), entry.getKey());
next = entry.getKey();
}
}
NavigableMap<Integer, String> map = new TreeMap<Integer, String>();
for (int i = 1; i < 10; i++) {
int key = (int) Math.pow(2, i);
String value = String.format("key is %d", key);
map.put(key, value);
}
// [2, 4, 8, 16, 32, 64, 128, 256, 512]
int next = 50;
Map.Entry<Integer, String> entry;
while ((entry = map.higherEntry(next)) != null) {
System.out.printf("key=%d value=%s\n", entry.getKey(), entry.getKey());
next = entry.getKey();
}
}
key=64 value=64
key=128 value=128
key=256 value=256
key=512 value=512
key=128 value=128
key=256 value=256
key=512 value=512
0 件のコメント:
コメントを投稿