Java NavigableMap 接口
Java NavigableMap 接口
Java 集合框架的NavigableMap
接口提供了在地图条目之间导航的功能。
它被认为是SortedMap的一种。
实现 NavigableMap 的类
由于NavigableMap
是一个接口,我们不能从它创建对象。
为了使用NavigableMap
接口的功能,我们需要使用TreeMap
实现的类NavigableMap
。
如何使用导航地图?
在 Java 中,我们必须导入java.util.NavigableMap
要使用的包NavigableMap
。导入包后,以下是创建可导航地图的方法。
// NavigableMap implementation by TreeMap class
NavigableMap<Key, Value> numbers = new TreeMap<>();
在上面的代码中,我们创建了一个导航地图,命名为数字类的TreeMap
。
这里,
- 钥匙- 用于关联地图中每个元素(值)的唯一标识符
- 价值- 由地图中的键关联的元素
NavigableMap 的方法
被NavigableMap
认为是 的一种SortedMap
。这是因为NavigableMap
扩展了SortedMap
接口。
因此,所有SortedMap
方法在NavigableMap
. 要了解这些方法在 中是如何定义的SortedMap
。
但是,SortedMap
( headMap()
、tailMap()
和subMap()
) 的某些方法在 中的定义不同NavigableMap
。
让我们看看这些方法是如何在NavigableMap
.
头映射(键,布尔值)
该headMap()
方法返回与指定之前的所有键关联的可导航地图的所有条目钥匙(作为参数传递)。
这布尔值是一个可选参数。它的默认值为false
.
如果true
作为布尔值,该方法返回与指定之前的所有这些键关联的所有条目钥匙,包括与指定关联的条目钥匙.
tailMap(键,布尔值)
该tailMap()
方法返回与指定后的所有键关联的可导航地图的所有条目钥匙(作为参数传递)包括与指定关联的条目钥匙.
这布尔值是一个可选参数。它的默认值为true
.
如果false
作为布尔值,该方法返回指定后与这些键关联的所有条目钥匙,不包括与指定关联的条目钥匙.
子图(k1,bv1,k2,bv2)
该subMap()
方法返回与之间的键关联的所有条目k1和k2包括与相关的条目k1.
这BV1和bv2是可选参数。默认值为BV1为真,默认值为bv2是false
。
如果false
传递为BV1,该方法返回与之间的键关联的所有条目k1和k2,不包括与k1.
如果true
传递为bv2,该方法返回与之间的键关联的所有条目k1和k2,包括与关联的条目k1.
其他方法
提供NavigableMap
了各种可用于定位地图条目的方法。
- descendingMap() - 反转地图中条目的顺序
- descendingKeyMap() - 反转映射中键的顺序
- ceilingEntry() - 返回所有键大于或等于指定键的所有条目中键最小的条目
- ceilingKey() - 返回那些大于或等于指定键的键中最低的键
- floorEntry() - 返回键小于或等于指定键的所有条目中键最高的条目
- floorKey() - 返回小于或等于指定键的键中的最高键
- highEntry() - 返回所有键大于指定键的条目中键最小的条目
- highKey() - 返回大于指定键的键中最小的键
- lowerEntry() - 返回键小于指定键的所有条目中键最高的条目
- lowerKey() - 返回小于指定键的键中的最高键
- firstEntry() - 返回地图的第一个条目(具有最低键的条目)
- lastEntry() - 返回地图的最后一个条目(具有最高键的条目)
- pollFirstEntry() - 返回并删除地图的第一个条目
- pollLastEntry() - 返回并删除地图的最后一个条目
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:{一=1,三=3,二=2}
第一个条目:一个=1
最后一个条目:两个=2
删除第一个条目:一个=1
删除最后一个条目:两个=2
还没有评论,来说两句吧...