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引入了`java.util.NavigableMap`和`java.util.NavigableSet`接口,这些接口扩展了`SortedMap`和`SortedSet`,提供了更高级别的遍历和查找功能。此外,`java.util.ConcurrentSkipListMap`和`java.util....
- `java.util.NavigableSet`和`java.util.NavigableMap`:扩展了`TreeSet`和`TreeMap`,支持范围查询和导航操作。 5. **数据库中的树结构**: - SQL中的层次查询,如Oracle的CONNECT BY,MySQL的WITH RECURSIVE。...
5. **集合框架增强**:Java 7对集合框架进行了优化,如`ArrayList`和`HashMap`的性能提升,以及`NavigableSet`和`NavigableMap`的引入,这些集合提供了按特定顺序遍历和查找元素的能力。 6. **自动资源管理**:`try...
同时,引入了`ListIterator`接口和`NavigableSet`、`NavigableMap`等高级接口,增强了集合的操作和遍历能力。 3. **Swing组件**:在GUI编程中,`javax.swing`包提供了丰富的组件,如按钮(JButton)、文本框...
- **集合框架增强**:JDK 1.7对集合框架进行了优化,例如引入了`NavigableSet`和`NavigableMap`接口,增强了排序和查找功能。 - **并发编程**:`java.util.concurrent`包中新增和改进了许多并发工具类,如`...
- **`NavigableMap`与`NavigableSet`**:提供有序遍历和范围操作的接口,便于在排序或区间操作时使用。 3. **I/O与NIO** - **NIO.2**:引入了New I/O 2,提供了文件系统操作的新API,如`java.nio.file`包,支持...
- `NavigableMap`和`NavigableSet`提供了排序和范围查询功能。 5. **文件系统API**: - 引入了`java.nio.file`包,提供了新的文件系统API,支持Path对象,更易于操作文件和目录。 6. **日期和时间API**: - `...
在Java编程语言中,"Tree"通常指的是数据结构中的树形结构,以及相关的类库,如`java.util.TreeSet`和`java.util.TreeMap`。这些数据结构在处理有序数据时非常有用,因为它们提供了自动排序和高效查找、插入和删除...
此外,`java.util`包中的一些经典集合框架,如`ArrayList`、`HashMap`和`HashSet`,在1.6版本中也有了新的特性,比如`TreeMap`和`TreeSet`引入了`NavigableMap`和`NavigableSet`接口,允许更灵活的排序和遍历操作。...
另外,引入了TreeMap和TreeSet的子类NavigableMap和NavigableSet,支持高效的区间查询和排序。 二、Stream API Java 8 引入了Stream API,这是一组用于处理集合的新工具,可以进行高效且易于理解的并行数据处理。...
JDK 1.4进一步完善了集合框架,例如,`TreeSet`和`TreeMap`实现了`NavigableSet`和`NavigableMap`接口,提供了更多的排序和查找功能。此外,`Collections`类增加了更多实用方法,如`copy()`用于复制集合。 6. **...
3. **增强的集合框架**:增加了`NavigableSet`和`NavigableMap`接口,它们扩展了`SortedSet`和`SortedMap`,提供了更多的导航和查找功能。 4. **改进的I/O流**:引入了NIO(非阻塞I/O)2.0,增加了`java.nio.file`...
10. **集合框架增强(Collections Framework Enhancements)**:包括对`ArrayList`、`HashMap`等集合类的性能优化,以及`TreeSet`和`TreeMap`的平衡树实现,提供了`NavigableSet`和`NavigableMap`接口。 11. **并发...
- Java 8 引入了新的集合接口,如 `NavigableMap` 和 `NavigableSet`,以及类型安全的队列 (`checkedQueue`)。 - 还有一些其他实用方法,如 `Collections.synchronizedXXX` 用于线程安全的集合操作,以及 `...
- **定义**:这两个类分别实现了NavigableSet和NavigableMap接口。 - **特点**: - 在原有基础上增加了更多导航功能,提高了搜索效率。 #### 4. Collections 工具类中的新增方法 - **newSetFromMap(Map)** - ...
Java.util.concurrent包是专门为Java并发编程设计的,包含了许多高级并发组件。这些组件可以被分类为以下几大类: - **locks部分**:包括显式锁,如互斥锁和重入锁,它们提供了比synchronized更灵活的锁定机制。 - ...
- **`NavigableMap`和`NavigableSet`**:提供了基于排序的导航功能,便于在有序集合中进行查找和遍历。 4. **异常处理** - **`try-catch`块可以捕获多个异常类型**:这使得代码更整洁,避免了不必要的嵌套`catch`...
JDK 1.5对`TreeSet`和`TreeMap`进行了改进,提供了`NavigableSet`和`NavigableMap`接口,以及`subSet`、`headSet`和`tailSet`等方法,方便对有序集合进行高效的操作。 ### 8. **内省增强(Introspection ...