注: このメソッドは常に、その下端点は含むが上端点は含まない「片側が開いた範囲」を返します。。上下端点を含む「閉じた範囲」が必要で、キーの型により直後のキーの計算が可能な場合、単に lowEndpoint から直後のキー (highEndpoint) までの部分範囲を指定してください。たとえば、m はそのキーが文字列のマップである場合、次の慣用法は、キーが low 〜 high までの範囲 (上下端点を含む) にある m 内のすべてのキーと値のマッピングを保持するビューを取得します。
SortedMap#subMap
Map sub = m.subMap(low, high+"\0");
つーことで試してみる。
import java.util.*; public class Test { public static void main(String args[]) { TreeMap map = new TreeMap(); map.put("1" , "a"); map.put("2" , "b"); map.put("3" , "c"); map.put("4" , "d"); map.put("5" , "e"); Map sub = map.subMap("1","5"); for(Iterator iter = sub.keySet().iterator() ; iter.hasNext() ;) { Object key = iter.next(); System.out.println(key); // 1 // 2 // 3 // 4 } sub = map.subMap("1","5\0"); for(Iterator iter = sub.keySet().iterator() ; iter.hasNext() ;) { Object key = iter.next(); System.out.println(key); // 1 // 2 // 3 // 4 // 5 } } }