java的map类型教程,Java NavigableMap 接口

Java NavigableMap 接口

在本教程中,我们将通过一个示例学习Java NavigableMap接口及其方法。

Java集合框架的NavigableMap接口提供了在映射条目之间导航的功能。

它被视为SortedMap的一种类型。

实现NavigableMap的类

由于NavigableMap是接口,因此无法从中创建对象。

为了使用NavigableMap接口的功能,我们需要使用实现NavigableMap的TreeMap类。

java-navigablemap-implementation.png

如何使用NavigableMap?

在Java中,我们必须导入java.util.NavigableMap包才能使用NavigableMap。 导入包后,将按照以下方法创建NavigableMap。

// NavigableMap由TreeMap类实现

NavigableMap numbers = new TreeMap<>();

在上面的代码中,我们创建了TreeMap类的名为numbers的可导航映射。

这里,Key - 用于关联映射中每个元素(值)的唯一标识符

Value - map中与键相关联的元素

NavigableMap的方法

NavigableMap被视为SortedMap的一种类型。这是因为NavigableMap继承了SortedMap接口。

因此,在NavigableMap中也可以使用所有SortedMap方法。了解如何在SortedMap中定义这些方法,请访问Java SortedMap。

但是,在NavigableMap中对SortedMap的某些方法(headMap(),tailMap()和subMap())进行了不同的定义。

让我们看看如何在中定义这些方法NavigableMap。

headMap(key,booleanValue)

headMap()方法返回与指定键(作为参数传递)之前的所有键相关联的可导航映射的所有条目。

booleanValue是一个可选的参数。默认值为false。

如果booleanValue为true,则该方法返回与指定键之前的所有那些键相关联的所有条目key,包括与指定键相关联的条目key。

tailMap(key,booleanValue)

tailMap()方法返回与指定键(key)(作为参数传递)之后的所有键相关联的可导航映射的所有条目,包括与指定键(key)相关联的条目。

booleanValue是一个可选的参数。默认值为true。

如果booleanValue为false,则该方法将返回指定键(key)之后与那些键关联的所有条目,而不包括与指定键(key)关联的条目。

subMap(k1,bv1,k2,bv2)

subMap()方法返回与k1和k2之间的键相关的所有条目,包括与k1相关的条目。

bv1和bv2是可选参数。bv1的默认值为true, bv2的默认值为false。

如果bv1为false,则该方法返回与k1和k2之间的键关联的所有条目,而不包括与k1关联的条目。

如果bv2为true,则该方法返回与k1和k2之间的键关联的所有条目,包括与k1关联的条目。

其他方法

NavigableMap提供了可用于定位映射的条目的各种方法。DescendingMap() - 反转map中条目的顺序

DescendingKeyMap() - 反转map中键的顺序

ceilingEntry() - 返回其键大于或等于指定键的所有条目中键最小的条目

ceilingKey() - 返回大于或等于指定键的那些键中的最小键

floorEntry() - 返回其键小于或等于指定键的所有条目中具有最大键的条目

floorKey() - 返回小于或等于指定键的那些键中的最大键

HigherEntry() - 返回其键大于指定键的所有条目中键最小的条目

HigherKey() - 返回大于指定键的那些键中的最小键

lowerEntry() - 返回其键小于指定键的所有条目中具有最大键的条目

lowerKey() - 返回小于指定键的那些键中的最大键

firstEntry() - 返回map的第一个条目(具有最小键的条目)

lastEntry() - 返回map的最后一个条目(具有最大键的条目)

pollFirstEntry() - 返回并删除map的第一个条目

pollLastEntry() - 返回并删除map的最后一个条目

TreeMap类中NavigableMap的实现

示例

import java.util.NavigableMap;

import java.util.TreeMap;

class Main {

public static void main(String[] args) {

//使用TreeMap创建NavigableMap

NavigableMap numbers = new TreeMap<>();

//向map插入元素

numbers.put("Two", 2);

numbers.put("One", 1);

numbers.put("Three", 3);

System.out.println("NavigableMap: " + numbers);

//访问映射的第一项

System.out.println("第一项: " + numbers.firstEntry());

//访问地图的最后一项

System.out.println("最后一项: " + numbers.lastEntry());

//从映射中删除第一项

System.out.println("删除第一项: " + numbers.pollFirstEntry());

//从地图上删除最后一项

System.out.println("删除最后一项: " + numbers.pollLastEntry());

}

}

输出结果NavigableMap: {One=1, Three=3, Two=2}

第一项: One=1

最后一项: Two=2

删除第一项: One=1

删除最后一项: Two=2

要了解更多信息TreeMap,请访问Java TreeMap。

现在我们知道了NavigableMap接口,我们将在下一个教程中使用TreeMap类,详细了解其实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值