本篇文章给大家分享的是有关Java中SortedMap和NavigableMap的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、前言由于乱序的数据对查找不利,例如
本篇文章给大家分享的是有关Java中SortedMap和NavigableMap的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
由于乱序的数据对查找不利,例如无法使用二分法等降低算法的时间复杂度,如果数据在插入时就排好序,查找的性能聚会提升很多。sortedMap接口就是为这种有序的数据服务的。
sortedMap接口需要数据的key支持Comparable,或者可以被指定的Comparator接受。sortedMap主要提供了以下方法:
// 返回排序数据所用的ComparatorComparator<? super K> comparator();// 返回在[fromKey, toKey)之间的数据SortedMap<K,V> subMap(K fromKey, K toKey);// 返回从第一个元素到toKey之间的数据SortedMap<K,V> headMap(K toKey);// 返回从fromKey到末尾之间的数据SortedMap<K,V> tailMap(K fromKey);//返回第一个数据的keyK firsTKEy();//返回最后一个数据的keyK lastKey();
SortedMap主要提供了获取子集,以及获取最大值(最后一个值)和最小值(第一个值)的方法。但这仅仅是排序数据能提供的便利的一小部分,在接下来分析的NavigableMap中,我们还会看到更多的功能。
SortedMap提供了获取最大值与最小值的方法,但对于一个已经排序的数据集,除了最大值与最小值之外,我们可以对任何一个元素,找到比它小的值和比它大的值,还可以按照按照原有的顺序倒序排序等。NavigableMap就为我们提供了这些功能。
我们来看看NavigableMap主要有哪些方法
// 找到第一个比指定的key小的值Map.Entry<K,V> lowerEntry(K key);// 找到第一个比指定的key小的keyK lowerKey(K key);// 找到第一个小于或等于指定key的值Map.Entry<K,V> floorEntry(K key);// 找到第一个小于或等于指定key的keyK floorKey(K key);// 找到第一个大于或等于指定key的值Map.Entry<K,V> ceilingEntry(K key);K ceilingKey(K key);// 找到第一个大于指定key的值Map.Entry<K,V> higherEntry(K key);K higherKey(K key);// 获取最小值Map.Entry<K,V> firstEntry();// 获取最大值Map.Entry<K,V> lastEntry();// 删除最小的元素Map.Entry<K,V> pollFirstEntry();// 删除最大的元素Map.Entry<K,V> pollLastEntry();//返回一个倒序的MapNavigableMap<K,V> descendingMap();// 返回一个Navigable的key的集合,NavigableSet和NavigableMap类似NavigableSet<K> navigableKeySet();// 对上述集合倒序NavigableSet<K> descendingKeySet();
1.springMVC,spring WEB mvc是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。2.shiro,Apache Shiro是Java的一个安全框架。3.mybatis,MyBatis 是支持普通 sql查询,存储过程和高级映射的优秀持久层框架。4.dubbo,Dubbo是一个分布式服务框架。5.Maven,Maven是个项目管理和构建自动化工具。6.RabbitMQ,RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。7.Ehcache,EhCache 是一个纯Java的进程内缓存框架。
以上就是Java中SortedMap和NavigableMap的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。
--结束END--
本文标题: Java中SortedMap和NavigableMap的作用是什么
本文链接: https://lsjlt.com/news/277454.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0