Sealyu

--- 博客已迁移至: http://www.sealyu.com/blog

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  618 随笔 :: 87 文章 :: 225 评论 :: 0 Trackbacks
Java 6对Nevigable接口做了一些改进。具体的看以下例子:

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

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

Java 5中可以这样获得:

TreeSet<Integer> subset = new TreeSet<Integer>();
subset = (TreeSet)times.headSet(1600);
System.out.println("the last before 4pm:" + subset.last());

TreeSet<Integer> subset2 = new TreeSet<Integer>();
subset2 = (TreeSet)times.tailSet(2000);
System.out.println("the last before 8pm:" + subset.last());

在Java 6中,可以更加方便:
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()。
posted on 2009-08-17 12:21 seal 阅读(489) 评论(0)  编辑  收藏 所属分类: Java基础

只有注册用户登录后才能发表评论。


网站导航: