Java 6对Nevigable接口做了一些改进。具体的看以下例子:

例如一个渡口有一个不定期的时刻表,我们将每日离港的时间保存在TreeSet中,那么,如果我们想获得下午4点前离开的最后一班渡轮(1600)和下午8殿后离开的最早一班渡轮(2000),应该怎么实现呢?

TreeSet times = new TreeSet();
times.add(1205);
times.add(1505);
times.add(1545);
times.add(1830);
times.add(2010);
times.add(2100);

Java 5中可以这样获得:

TreeSet subset = new TreeSet();
subset = (TreeSet)times.headSet(1600);
System.out.println(“the last before 4pm:” + subset.last());

TreeSet subset2 = new TreeSet();
subset2 = (TreeSet)times.tailSet(2000);
System.out.println(“the last before 8pm:” + subset.last());

在Java 6中,可以更加方便:<br />
System.out.println(“the last before 4pm:” + times.lower(1600));
System.out.println(“the last before 8pm:” + times.higher(2000));

对NavigableSet有四个方法:lower(), floor(),higher()和ceiling()。
lower和floor的区别是,lower是比给定元素小的元素,而floor是小于或等于的。higher和ceiling类似。对于
NavigableMap也有四个方法: lowerKey(), floorKey(), ceilingKey()和higherKey()。</div>

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注