TreeMap
也是一種Map, 有key, value
跟HashMap的差異是裡面(key,value)的擺放會依照key值進行升序擺放
假設將 (1, "value1") (2, "value2") ..... (n, "valueN")等N個 pairs不依照順序放進treeMap中
結果還是會以key值大小(自然順序)進行升序排列。
key值小的擺到前面。
因為整個map已經整理排序過。所以可以透過lowerKey(int keyValue)、higherKey(int keyValue)等API取得
某個最接近的key值。
ex:
TreeMap<Integer, String> tm = new TreeMap<>();
tm.put(2, "value2");
tm.put(1, "value1");
tm.put(3, "value3");
tm.put(4, "value4");
while(tm.size() > 0){
//取出第一個entry
Entry entry = (Entry)tm.pollFirstEntry();
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
//output:
// key:1 value:value1
// key:2 value:value2
// key:3 value:value3
// key:4 value:value4
//也已透過lowerKey(k) (<k), higerKey(k) (>k)
//找出接近k但不等於k的key值
Integer lkey = tm.lowerKey(3); // lkey = 2
Integer hkey = tm.higerKey(3); // hkey = 4
Integer nkey = tm.higerKey(5); // nkey = null, 沒有
//也已透過floorKey(k) (<=k), ceilingKey(k) (>=k)
//找出接近k且可以等於k的key值
Integer fkey = tm.floorKey(3); // fkey = 3
Integer ckey = tm.ceilingKey(3); // ckey = 3
Integer nkey = tm.ceilingKey(5); // nkey = null, 沒有
Last updated
Was this helpful?