`
holdbelief
  • 浏览: 707671 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.util.NavigableSet和NavigableMap

    博客分类:
  • Java
阅读更多

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()。

分享到:
评论

相关推荐

    JDK 7 源码

    JDK 7引入了`java.util.NavigableMap`和`java.util.NavigableSet`接口,这些接口扩展了`SortedMap`和`SortedSet`,提供了更高级别的遍历和查找功能。此外,`java.util.ConcurrentSkipListMap`和`java.util....

    关于java树型结构

    - `java.util.NavigableSet`和`java.util.NavigableMap`:扩展了`TreeSet`和`TreeMap`,支持范围查询和导航操作。 5. **数据库中的树结构**: - SQL中的层次查询,如Oracle的CONNECT BY,MySQL的WITH RECURSIVE。...

    java1.7-API-英文版

    5. **集合框架增强**:Java 7对集合框架进行了优化,如`ArrayList`和`HashMap`的性能提升,以及`NavigableSet`和`NavigableMap`的引入,这些集合提供了按特定顺序遍历和查找元素的能力。 6. **自动资源管理**:`try...

    JDK_API_1_6_zh_CN

    同时,引入了`ListIterator`接口和`NavigableSet`、`NavigableMap`等高级接口,增强了集合的操作和遍历能力。 3. **Swing组件**:在GUI编程中,`javax.swing`包提供了丰富的组件,如按钮(JButton)、文本框...

    java_API JDK1.7

    - **集合框架增强**:JDK 1.7对集合框架进行了优化,例如引入了`NavigableSet`和`NavigableMap`接口,增强了排序和查找功能。 - **并发编程**:`java.util.concurrent`包中新增和改进了许多并发工具类,如`...

    Java API 1.6

    - **`NavigableMap`与`NavigableSet`**:提供有序遍历和范围操作的接口,便于在排序或区间操作时使用。 3. **I/O与NIO** - **NIO.2**:引入了New I/O 2,提供了文件系统操作的新API,如`java.nio.file`包,支持...

    java api 1.7

    - `NavigableMap`和`NavigableSet`提供了排序和范围查询功能。 5. **文件系统API**: - 引入了`java.nio.file`包,提供了新的文件系统API,支持Path对象,更易于操作文件和目录。 6. **日期和时间API**: - `...

    java Tree

    在Java编程语言中,"Tree"通常指的是数据结构中的树形结构,以及相关的类库,如`java.util.TreeSet`和`java.util.TreeMap`。这些数据结构在处理有序数据时非常有用,因为它们提供了自动排序和高效查找、插入和删除...

    javaAPI文档

    此外,`java.util`包中的一些经典集合框架,如`ArrayList`、`HashMap`和`HashSet`,在1.6版本中也有了新的特性,比如`TreeMap`和`TreeSet`引入了`NavigableMap`和`NavigableSet`接口,允许更灵活的排序和遍历操作。...

    Java1.8API中文手册

    另外,引入了TreeMap和TreeSet的子类NavigableMap和NavigableSet,支持高效的区间查询和排序。 二、Stream API Java 8 引入了Stream API,这是一组用于处理集合的新工具,可以进行高效且易于理解的并行数据处理。...

    jdk1.4安装文件

    JDK 1.4进一步完善了集合框架,例如,`TreeSet`和`TreeMap`实现了`NavigableSet`和`NavigableMap`接口,提供了更多的排序和查找功能。此外,`Collections`类增加了更多实用方法,如`copy()`用于复制集合。 6. **...

    JDK_1.6 API 中文帮助文档 chm格式

    3. **增强的集合框架**:增加了`NavigableSet`和`NavigableMap`接口,它们扩展了`SortedSet`和`SortedMap`,提供了更多的导航和查找功能。 4. **改进的I/O流**:引入了NIO(非阻塞I/O)2.0,增加了`java.nio.file`...

    java api1.5中文文档.rar

    10. **集合框架增强(Collections Framework Enhancements)**:包括对`ArrayList`、`HashMap`等集合类的性能优化,以及`TreeSet`和`TreeMap`的平衡树实现,提供了`NavigableSet`和`NavigableMap`接口。 11. **并发...

    Java类库的更新.pdf

    - Java 8 引入了新的集合接口,如 `NavigableMap` 和 `NavigableSet`,以及类型安全的队列 (`checkedQueue`)。 - 还有一些其他实用方法,如 `Collections.synchronizedXXX` 用于线程安全的集合操作,以及 `...

    Java6 Collection Framework 新特性概览.pdf

    - **定义**:这两个类分别实现了NavigableSet和NavigableMap接口。 - **特点**: - 在原有基础上增加了更多导航功能,提高了搜索效率。 #### 4. Collections 工具类中的新增方法 - **newSetFromMap(Map)** - ...

    多线程编程.docx

    Java.util.concurrent包是专门为Java并发编程设计的,包含了许多高级并发组件。这些组件可以被分类为以下几大类: - **locks部分**:包括显式锁,如互斥锁和重入锁,它们提供了比synchronized更灵活的锁定机制。 - ...

    JDK-API-CODE:jdk7 API的源代码,加上了自己的注释

    - **`NavigableMap`和`NavigableSet`**:提供了基于排序的导航功能,便于在有序集合中进行查找和遍历。 4. **异常处理** - **`try-catch`块可以捕获多个异常类型**:这使得代码更整洁,避免了不必要的嵌套`catch`...

    jdk1.5 java

    JDK 1.5对`TreeSet`和`TreeMap`进行了改进,提供了`NavigableSet`和`NavigableMap`接口,以及`subSet`、`headSet`和`tailSet`等方法,方便对有序集合进行高效的操作。 ### 8. **内省增强(Introspection ...

Global site tag (gtag.js) - Google Analytics