Sealyu

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          Java 6對Nevigable接口做了一些改進。具體的看以下例子:

          例如一個渡口有一個不定期的時刻表,我們將每日離港的時間保存在TreeSet中,那么,如果我們想獲得下午4點前離開的最后一班渡輪(1600)和下午8殿后離開的最早一班渡輪(2000),應該怎么實現(xiàn)呢?

          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的區(qū)別是,lower是比給定元素小的元素,而floor是小于或等于的。higher和ceiling類似。對于 NavigableMap也有四個方法: lowerKey(), floorKey(), ceilingKey()和higherKey()。
          posted on 2009-08-17 12:21 seal 閱讀(499) 評論(0)  編輯  收藏 所屬分類: Java基礎
          主站蜘蛛池模板: 额敏县| 休宁县| 井研县| 象山县| 宝清县| 栾城县| 邢台市| 九龙坡区| 登封市| 平谷区| 尤溪县| 张家口市| 沅江市| 合阳县| 保康县| 永登县| 尤溪县| 大丰市| 海安县| 西丰县| 无为县| 蒙城县| 徐州市| 镇赉县| 唐山市| 古浪县| 合水县| 桑日县| 天柱县| 萍乡市| 灯塔市| 新乐市| 慈利县| 武川县| 保山市| 烟台市| 鄢陵县| 安多县| 六安市| 祁东县| 亚东县|