map通过key排序,map集合如何根据key进行排序_3

  map通过key排序,map集合如何根据key进行排序

  

  java map的key排序吗

  Java为数据结构中的映射定义了一个接口java.util.Map。它实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMap。Map不允许键重复,但允许值重复。

  1.HashMap:

  最常用的Map是根据一个键的hashcode值来存储数据,根据键可以直接得到它的值(因为同一个键hashcode值相同,所以可以根据hashcode值所在地址存储的键直接得到值)。它的访问速度很快,遍历时,获取数据的顺序是完全随机的。HashMap最多只允许一条记录的键为null。多条记录的值允许为空。HashMap不支持线程同步,即多个线程可以随时写HashMap,导致数据不一致。如果需要同步,可以使用Synchronize HashMap的方法,使HashMap具有同步的能力,或者使用concurrentHashMap。

  2.HashTable:

  和HashMap类似,不同的是不允许记录的键或值为空,支持线程同步,即任何时刻只有一个线程可以写HashTable,这也导致HashTable写的比较慢!

  3.LinkedHashMap:

  是HahsMap的子类,但它保持了记录的插入顺序。遍历时先得到的肯定是先插入的。你也可以在构造的时候取参数,按照应用的数量来排序。然而,有一个例外。当HashMap容量很大,实际数据很少时,遍历会比LinkedHashMap慢(因为是链),因为HashMap的遍历速度与其容量有关。

  4.TreeMap:

  实现了sortMap接口,可以对保存的记录按键排序(默认为升序),或者指定一个排序比较器,遍历时得到的数据是乱序的。

  什么情况用什么类型的Map:

  插入、删除和定位元素:Map中的hashMap

  以自定义顺序或自然顺序遍历:TreeMap

  要求输入顺序和输出顺序相同:LinkedHashMap

  我们,大量免费的Java入门教程,欢迎在线学习!以上是java map的键排序细节吗?更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: