Java NavigableMap 接口
Java NavigableMap 接口
在本教程中,我们将通过一个示例了解 Java NavigableMap 接口及其方法。
NavigableMap
Java 集合框架的接口提供了在地图条目之间导航的功能。
它被认为是SortedMap的一种。
实现NavigableMap的类
从 NavigableMap
是一个接口,我们不能从它创建对象。
为了使用 NavigableMap
的功能 接口,我们需要使用TreeMap
实现 NavigableMap
的类 .
NavigableMap如何使用?
在 Java 中,我们必须导入 java.util.NavigableMap
使用 NavigableMap
的包 .导入包后,我们可以通过以下方式创建可导航的地图。
// NavigableMap implementation by TreeMap class
NavigableMap<Key, Value> numbers = new TreeMap<>();
在上面的代码中,我们创建了一个名为 numbers 的导航地图 TreeMap
类。
在这里,
- 键 - 用于关联地图中每个元素(值)的唯一标识符
- 值 - 由地图中的键关联的元素
NavigableMap的方法
NavigableMap
被认为是 SortedMap
的一种 .这是因为 NavigableMap
扩展了 SortedMap
界面。
因此,所有 SortedMap
NavigableMap
中也有方法 .了解这些方法是如何在 SortedMap
中定义的 ,访问Java SortedMap。
但是,SortedMap
的一些方法 (headMap()
, tailMap()
, 和 subMap()
) 在 NavigableMap
中的定义不同 .
让我们看看这些方法在NavigableMap
中是如何定义的 .
headMap(key, booleanValue)
headMap()
方法返回与指定 key 之前的所有键关联的可导航地图的所有条目 (作为参数传递)。
booleanValue 是一个可选参数。它的默认值为 false
.
如果 true
作为 booleanValue 传递 ,该方法返回与指定 key 之前的所有这些键关联的所有条目 ,包括与指定 key 关联的条目 .
tailMap(key, booleanValue)
tailMap()
方法返回与指定 key 之后的所有键关联的可导航地图的所有条目 (作为参数传递)包括与指定 key 关联的条目 .
booleanValue 是一个可选参数。它的默认值为 true
.
如果 false
作为 booleanValue 传递 ,该方法返回与指定 key 之后的那些键关联的所有条目 , 不包括与指定 key 关联的条目 .
subMap(k1, bv1, k2, bv2)
subMap()
方法返回与 k1 之间的键关联的所有条目 和 k2 包括与 k1 关联的条目 .
bv1 和 bv2 是可选参数。 bv1 的默认值 是 true 并且 bv2 的默认值 是 false
.
如果 false
作为 bv1 传递 ,该方法返回与 k1 之间的键关联的所有条目 和 k2 ,不包括与 k1 关联的条目 .
如果 true
作为 bv2 传递 ,该方法返回与 k1 之间的键关联的所有条目 和 k2 ,包括与 k1 关联的条目 .
其他方法
NavigableMap
提供了多种方法可以用来定位地图的入口。
- descendingMap() - 反转地图中的条目顺序
- descendingKeyMap() - 反转地图中键的顺序
- ceilingEntry() - 返回键大于或等于指定键的所有条目中键最小的条目
- ceilingKey() - 返回大于或等于指定键的键中最低的键
- floorEntry() - 返回键小于或等于指定键的所有条目中键最高的条目
- floorKey() - 返回小于或等于指定键的键中最高的键
- higherEntry() - 返回键大于指定键的所有条目中键最小的条目
- higherKey() - 返回大于指定键的键中最小的键
- lowerEntry() - 返回所有键值小于指定键值的条目中键值最高的条目
- lowerKey() - 返回小于指定键的键中最高的键
- firstEntry() - 返回地图的第一个条目(键最低的条目)
- lastEntry() - 返回地图的最后一个条目(具有最高键的条目)
- pollFirstEntry() - 返回并删除地图的第一个条目
- pollLastEntry() - 返回并删除地图的最后一个条目
要了解更多信息,请访问 Java NavigableMap(Java 官方文档)。
TreeMap类中NavigableMap的实现
import java.util.NavigableMap;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// Creating NavigableMap using TreeMap
NavigableMap<String, Integer> numbers = new TreeMap<>();
// Insert elements to map
numbers.put("Two", 2);
numbers.put("One", 1);
numbers.put("Three", 3);
System.out.println("NavigableMap: " + numbers);
// Access the first entry of the map
System.out.println("First Entry: " + numbers.firstEntry());
// Access the last entry of the map
System.out.println("Last Entry: " + numbers.lastEntry());
// Remove the first entry from the map
System.out.println("Removed First Entry: " + numbers.pollFirstEntry());
// Remove the last entry from the map
System.out.println("Removed Last Entry: " + numbers.pollLastEntry());
}
}
输出
NavigableMap: {One=1, Three=3, Two=2} First Entry: One=1 Last Entry: Two=2 Removed First Entry: One=1 Removed Last Entry: Two=2
了解更多关于 TreeMap
,访问Java TreeMap。
现在我们知道了 NavigableMap
接口,我们将使用 TreeMap
来了解它的实现 下个教程详细上课。
java