NavigableMap与NavigableSet

金蝶个版本下载地址,记得保存收藏。 专业版 V10.0 http://downloads.cmcloud.cn/kis/kis_pro/10.0/kiszybV10sp1.rar V11.0 http://downloads.cmcloud.cn/kis/kis_pro/11.0/KISV11Setup.rar V12.0 http://dow... 阅读详情

可导航的Map和集合 NavigableMap and NavigableSet

Java集合框架(Java Collections Framework)加入了一个新的NavigableMap和NavigableSet接口。分别的扩展了SortedMap和SortedSet接口,本质上添加了搜索选项到接口。

NavigableMap接口

对于NavigableMap,有3个方法的集合。其中一个方法集合用于获取子Map,另一个集合用于获取Map Entity,最后一个用于设置Map键关联的工作。

在 第一个集合中存在3个方法。首先,navigableHeadMap(toKey)返回一个包含所有的键的NavigableMap,但是不包括 toKey,有一个返回带有所有键的NavigableMap的方法navigableTailMap(fromKey),从fromKey开始的,一直 到最后一个键的内容。最后,是一个naviagbleSubMap(fromKey,toKey)方法,返回一NavigableMap,从 fromKey开始,结束于toKey(这里是一个半开半闭区间[startKey,endKey))。感官上,这些方法与SortedMap的 headMap()、tailMap()和subMap()方法相同,但是返回不一样的类型,而不是上面提到的NavigableMap。

这里的第二个方法的集合是和Map的键有关的。对于SortedMap,你有firstKey()和lastKey()来获取某个Map的边界键值。NavigableMap有一些获取键的其他方法:

  • ceilingKey(key):用来获取大于或者等于给定的key的第一个键,如果没有的话就返回null。
  • floorKey(key):用来获取小于或者等于给定的key的第一个键,如果没有的话就返回null。
  • higherKey(key):用来获取大于给定的key的第一个键,如果没有的话就返回null。
  • lowerKey(key):用来获取小于给定的key的第一个键,如果没有的话就返回null。

第三个方法的集合可能是最有用的。当需要使用到SortedMap或者Map实例的时候,一般来说,你将获得键和获得对应的值。最后的方法的集合一般都是返回Map。实体实例取代了键。因此,你不必要去进行第二次查找操作。所以,这里有6个方法来操控第二个集合:

  • ceilingEntry(key):用于获取大于或等于给定key的第一个实体,如果没有则返回null。
  • firstEntry():用于获取Map的第一个实体,如果没有则返回null。
  • floorEntry(key):用于获取小于或等于给定的第一个实体key,如果没有则返回null。
  • higherEntry():用于获取大于给定的key的第一个实体,如果没有则返回null。
  • lastEntry():用于获取Map最后一个实体,如果没有则返回null。
  • lowerEntry(key):用于获取小于给定key的第一个实体,如果没有则返回null。

这里有两个单步从Map获取和删除实体的方法。提供了一个简单的不用使用迭代器而遍历所有Map元素的方法。下面是具体的介绍:

  • Map.Entry<K,V> pollFirstEntry():获取Map第一个键的实体并且从Map中移除该实体,如果Map为空则返回null。
  • Map.Entry<K,V> pollLastEntry():获取Map最后一个键的实体并且从Map移除该实体,如果Map为空则返回null。

另外还有两个值得起到的NavigableMap方法:descendingKeySet()和descendingEntrySet()。keySet()和entrySet()返回的是升序的键的集合,而新的NavigableMap方法是以降序进行工作的。

在Java 6中,这里有两个NavigableMap接口的实现。旧的TreeMap被从NavigableMap中继承而不是原来的SortedMap。另外,一 个该接口的并发的版本现在可以在ConcurrentSkipListMap类中找到。可能你并不熟悉skiplist,它们是一种排序过的链接,使用了 并行链表提高了搜索的速度。但TreeMap的结构是平衡的,并且粗略的从链表中寻找一个键,ConcurrentSkipListMap一直都是从最前 面开始,但是由于副skip list的作用,搜索的效果很接近于二分查找。

下面是一个具体例子,仅供参考:

import java.util.NavigableMap;
import java.util.TreeMap;

public static void main(String[] args) {
NavigableMap<String, Integer> nav = new TreeMap<String, Integer>();
nav.put("aaa", 111);
nav.put("bbb", 222);
nav.put("eee", 333);
nav.put("ccc", 555);
nav.put("ddd", 444);
System.out.printf("Whole list:%s%n", nav);

System.out.printf("First key: %s/tFirst entry: %s%n",nav.firstKey(), nav.firstEntry());

System.out.printf("Last key: %s/tLast entry: %s%n",nav.lastKey(), nav.lastEntry());

System.out.printf("Key floor before bbb: %s%n",nav.floorKey("bbb"));

System.out.printf("Key lower before bbb: %s%n", nav.lowerKey("bbb"));

System.out.printf("Key ceiling after ccc: %s%n",nav.ceilingKey("ccc"));

System.out.printf("Key higher after ccc: %s%n",nav.higherKey("ccc"));
}

输出结果:

Whole list:{aaa=111, bbb=222, ccc=555, ddd=444, eee=333}

First key: aaa    First entry: aaa=111

Last key: eee    Last entry: eee=333

Key floor before:  bbb: bbb

Key lower before:  bbb: aaa

Key ceiling after:  ccc: ccc

Key higher after:  ccc: ddd

NavigableSet接口

NavigableSet 工作类似于NavigableMap,但是没有键值对。在NavigableMap中的3组方法,这里有其中的两组。你可以可以获取一个可导航的子集,带 有navigableHeadSet(toElement), navigableSubSet(fromElement, toElement), 和 navigableTailSet(E fromElement)方法。或者你可以获得特定的元素,通过ceiling(element), floor(element), higher(element), 和lower(element)方法。你也可以获取或删除元素,通过pollFirst()和pollLast()方法,升序的迭代 descendingIterator()补充了iterator()。

在表面之下,CouncurrentSkipListSet使用ConcurrentSkipListSet来完成所有的工作。

 

【QGIS、OSM】利用python开源工具实现指定区域的交通分配 如果从osmgnms和grid2demand得到的node.csv,我们要修改path4gnms代码中的utils.py的四处设置。利用QGIS实现可视化,得到的link_performance.csv,参数有volume和VOC。改完这四处代码,就可以运行path4gnms中的tutorial.ipynb了。 阅读详情

相关推荐

Mission Planner连接Autopilot保姆级教程:从USB到无线全搞定

本文提供Mission Planner连接Autopilot的全面指南,涵盖USB直连、无线数传、蓝牙适配等多种连接方案。详细讲解驱动安装、波特率匹配、性能优化等关键步骤,并分享多链路冗余配置与故障转移的高阶技巧,助你快速解决连接问题。

weixin_28455801的博客 376

SortedMap、NavigableMap、TreeMap介绍和使用

SortedMap接口:SortedMap是一个接口,继承自Map接口,它定义了对键值对按照键的自然顺序或自定义顺序进行排序的功能。SortedMap中的键值对是按照键的顺序排列的,因此可以根据键的顺序进行范围查找和遍历操作。SortedMap接口提供了一系列的导航方法和有序操作方法。 NavigableMap接口:NavigableMap是SortedMap接口的子接口,它在SortedMap的基础上增加了一些额外的导航方法,使得对有序键值对的操作更加方便和灵活。

好看的皮囊千篇一律,有趣的灵魂万里挑一。 3404

视觉定位避坑指南:基于双mark点的坐标转换常见错误排查

本文详细解析了工业视觉项目中基于双mark点的坐标转换常见错误及排查方法,涵盖旋转矩阵构建、坐标系原点选择、图像预处理优化等关键环节。通过实战案例和代码示例,帮助工程师避免定位偏差,提升系统精度,特别适用于自动化检测和精密制造场景。

7z8x2c4v6b9的博客 167

NavigableMap

1. NavigableMap 继承自 SortedMap,所以它的元素是有序的。 2. 在 SortedMap 基础上,支持快速搜索符合条件的最近的元素。这里条件主要是指lower(>),floor(>=),ceiling(<),higher(>)。 3. 支持逆序访问。descendingKeySet /descendingMap。 4. 支持获取子集合...

呈凹的博客 3046

PCB之AD层次化原理图设计

PCB之AD层次化(模块化)原理图设计 软件版本:AD17.1.9(bBuild 592) 先上效果图: 可以看到,图中有RS485和W5500这两个部分是复用了原理图,当项目中需要多个功能相同的电路时,这种设计就可以大大节约PCB布局布线的时间,方法后面介绍; 1.首先确定好项目中个部分电路的功能模块 不同功能的电路分开不同原理图画,然后给出输入输出端口,这样方便复用,下面是实例项目的功能划分 2.单个模块电路的接口设计 这里以W5500以太网接口电路为例说明: 主要就分为通讯接口和电源接口:

洋洋洋的博客 3万+

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 573

Java中的Map【三】NavigableMap接口

所使用的jdk版本为1.8版本,先看一下NavigableMap<K,V>在JDK中Map的UML类图中的位置: 2.1.3NavigableMap接口 接口NavigableMap<K,V> extends SortedMap<K,V>,是一个扩展的SortedMap,在继承SortedMap接口的基础之上,扩展了一些返...

灵颖桥人的博客 2579

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1364

NavigableMap接口

NavigableMap接口第1部分 NavigableMap接口介绍第2部分 NavigableMap接口数据结构第3部分 NavigableMap接口源码解析(基于JDK-8u201) 第1部分 NavigableMap接口介绍 NavigableMap接口简介 1 2 NavigableMap接口常用API 修饰语和返回类型 方法 描述 Iterator<T> i...

彬 799

基于RTL8370N的8口千兆无管理交换机硬件设计

无管理交换机是局域网边缘接入的核心基础设备,其本质是通过硬件状态机实现MAC地址学习、线速转发与自动协商,无需软件配置即可完成即插即用组网。原理上依赖高度集成的PHY+交换矩阵单芯片(如RTL8370N),结合确定性硬件逻辑替代MCU固件,保障低延迟、高可靠与零运维。技术价值体现在成本压缩、体积精简与部署极简化,广泛应用于家庭网络扩展、工业现场设备联网及嵌入式系统桥接等场景。本文详解一款基于RTL8370N的紧凑型8端口千兆无管理交换机,覆盖芯片选型依据、PHY接口设计、电源与散热优化等关键工程实践。

weixin_42327217的博客 400

【Python3教程】Python3高级篇之uWSGI 安装配置

本文介绍了在Python 3环境中安装和配置uWSGI的完整流程,涵盖基本安装、Flask/Django应用部署、Nginx集成以及systemd管理等关键环节。主要内容包括:uWSGI的安装前提条件,创建简单WSGI应用,编写uWSGI配置文件(.ini格式),与Nginx配合实现生产环境部署,以及使用systemd实现服务管理。文章还提供了常见Web框架(Flask、Django)的部署示例和高级配置建议,如负载均衡、HTTPS设置等。最后列出了权限、端口占用等常见问题的解决方案,为开发者提供了一套完整

No8g攻城狮的博客 437

Java NavigableMap接口总结 有序Map接口SortedMap接口的扩展

NavigableMap接口源码重点 NavigableMap接口继承自SortedMap接口,提供有序Map接口的扩展,提供了更为细致的导航方法,SortedMap源码可以看我这篇文章 SortedMap SortedMap接口继承自Map接口,所以NavigableMap接口也可以说是一种Map接口 NavigableMap接口提供了四类方法分别是 根据给定键key查找集合Map中的键 根据给定键key查找集合Map中的键值对Entry 获取集合Map中的键最小或最大的键值对 有序Map集合处理方法

weixin_45754452的博客 710

【AI 赋能:Python 人工智能应用实战】16. BERT微调实战:中文新闻分类全流程(附模型蒸馏+ONNX部署完整代码)

中文新闻分类是NLP领域的经典实用任务,BERT模型凭借双向上下文建模能力,能有效解决中文歧义与长文本依赖问题,但存在推理速度慢、资源占用高的痛点。本文以THUCNews中文新闻数据集为核心,提供从数据预处理、BERT微调、模型蒸馏到生产部署的全流程实操指南。首先详解THUCNews的多编码读取与清洗(解决gbk/utf-8兼容问题);然后实现BERT微调,加入早停机制与混淆矩阵可视化,验证准确率达93.8%;接着用DistilBERT完成模型蒸馏,在仅损失0.6%准确率的前提下,将推理速度提升2.7倍。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1098

Java集合之NavigableMap与NavigableSet接口

   author:lidx      本文接着上篇介绍SortedMap和SortedSet接口,介绍他们的扩展接口NavigableMap与NavigableSet接口, 提供了针对给定搜索目标返回最接近匹配项的导航方法。 SortedMap和SortedSet接口两个接口jdk1.2就已经提供,扩展的NavigableMap与NavigableSet接口jdk1.6才开始支持。 1....

lidongxiu0714 2万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

如何使用Java 6的NavigableSet和NavigableMap

您可以使用最新的Java 6的Collection API来导航集合和Map集合。 这些API提供了很大的灵活性,可以从集合中查找所需的结果。 1. NavigableMap示例 package com.example.collection; import java.util.NavigableMap; import java.util.TreeMap; public class N...

一名可爱的技术搬运工 228

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Core Java (二十四) SortedMap,NavigableMap,SortedSet,NavigableSet接口

SortedMap接口 根据比较器进行排序,是一个有序映射表。 ComparatorK> comparator() Returns the comparator used to order the keys in this map, or null if this map uses the natural ordering of its keys.

GinSmile的博客 3657

java.util.NavigableSet和NavigableMap

java.util.NavigableSet和NavigableMap

xymyeah 4193

java 中具有导航(navigate)功能的接口(NavigableSet和NavigableMap)的使用说明和对比

java 中具有导航(navigate)功能的接口(NavigableSet和NavigableMap)的使用说明和对比

爱的叹息的专栏 8475

TreeSet、NavigableMap、NavigableSet源码

TreeSet是一个有序的Set集合。既然是有序,那么它是靠什么来维持顺序的呢,回忆一下TreeMap中是怎么比较两个key大小的,是通过一个比较器Comparator对不对,不过遗憾的是,今天仍然不会讲Comparator,但是需要明白的是TreeSet要实现信息也必须依靠于Comparator接口。 关于Set,在前面我们讲过一个HashSet,是不是想起了什么,Set和Map在java中是...

weixin_30254435的博客 198

Java 集合中获取数据的前驱和后继元素

在 Java 中,如果需要获取某个数据的下一个或上一个数据,可以使用实现了 NavigableSet 或 NavigableMap 接口的集合,如 TreeSet 和 TreeMap,或者其线程安全的版本 ConcurrentSkipListSet 和 ConcurrentSkipListMap。对于实现了 List 接口的集合,可以通过 ListIterator 来获取前后元素。选择合适的集合取决于数据的类型、集合的排序需求以及是否需要线程安全。

龙大的博客 732

scjp复习笔记(3)

Example 16: 在Java1.6中引入了许多新的接口,其中的两个是:java.util.NavigableSet和java.util.NavigableMap。 import java.util.*; public class Ferry {   public s

过往记忆大数据 5351
上一篇: Cygwin下Hadoop的安装与配置
下一篇: Cygwin下Hadoop的安装与配置详解
G_beginner
博客等级 码龄16年 45粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值