首页 > 其他分享 >map输入与输出顺序不一致

map输入与输出顺序不一致

时间:2022-10-20 10:01:27浏览次数:61  
标签:map 顺序 HashMap Map 遍历 输入 LinkedHashMap

HashMap是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的,这样会导致按照顺序读取的时候和存入的顺序是不一样的。HashMap最多只允许一条记录的键为Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。
LinkedHashMap是HashMap的一个子类,保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。也可以在构造时用带参数,按照应用次数排序。在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关。
有过要按照顺序来取数据,有三种方法。
第一:
通过有序的 Key 获取相对应的数据。
第二:
用HashMap的子类LinkedHashMap可以按照我们的put顺序进行存储map数据

Map<String,String> map = new Map<>();
第三:用TreeMap

HashMap是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。
HashMap是无序的,即不会记录插入的顺序。
HashMap继承于AbstractHashMap,实现了Map、Cloneable、java.io.Serializeable接口。

原文链接:https://blog.csdn.net/qq_56619322/article/details/126689809

本次采用HashMap的子类LinkedHashMap按照我们的put顺序输出map中的数据

Map<String,String> map=new LinkedHashMap<>();
map.put("11","来了");
map.put("22","都得");
for (String l:map.keySet()){
}

 

标签:map,顺序,HashMap,Map,遍历,输入,LinkedHashMap
From: https://www.cnblogs.com/jinseliunian/p/16808714.html

相关文章

  • Java中HashMap的几种遍历方式
    publicstaticvoidmain(String[]args){Map<String,Object>map=newHashMap<>();map.put("姓名","张三");map.put("年龄",30);......
  • Go语言Map
    Go语言Map(集合)Map是一种无序的键值对的集合。Map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值。Map是一种集合,所以我们可以像迭代数组和切片......
  • day13 I/O流——字节输入输出流、字符输入输出流 & File常用类 & (字节)复制大文件
    day13I/O流定义:数据在两设备传输称为流,流是一组有顺序的,有起点和终点的字节集合I是input的缩写,表示输入流O是output缩写,表示输出流字节流(视频等)输入InputStream......
  • 顺序队列
    顺序队列:在顺序队列中有queueElem,front,rear,maxSizequeueElem代表队列的存储空间front代表队首的位置rear代表队尾的位置的下一个位置。maxSize代表最多放存储个数。......
  • [RxJS] mergeMap
    Mapsvaluestoanewobservableonemissionfromsource,subscribingtoandemittingresultsofinnerobservablesBydefaultmergeMapdoesnotlimitthenumbe......
  • gorm查询结果到基本类型、map
    ​ gorm是一个Go的orm框架,之前学到的都是用结构体去查,今天经过测试,发现可以直接用基础数据类型或者map来接查询的结果;我现在这里有一个结构体,学生:typeStudentstruct{......
  • Day4:Python基础逻辑判断的优先顺序及不同数据类型间的转换
    1、逻辑判断优先级顺序优先级顺序,()>not>and>or#print(2>1and1<4)#print(2>1and1<4or2<3and9>6or2<4and3<2)#TorTorF#Tor......
  • FlatMap和map的区别
    FlatMap和map的区别官方解释map返回一个流,流里的元素是,原流元素经常函数处理的结果。也可以理解为将原流的元素,通过function进行处理后替换。flatMap返回一个流,先将......
  • iOS input 以及textarea失去焦点 无法进行输入
    百度了大部分的方法都不行后续通过跟朋友一起试验/*在css中对应的input以及textarea下添加*/input,textarea{-webkit-user-select:auto!important;}iOSi......
  • SigmaPlot 14.0软件安装包下载及安装教程
    SigmaPlot14.0软件简介:SigmaPlot14.0是Systat国际软件公司研发的一款强大的专业科学绘图软件,画出的精密的图型将变得极其容易,它被广泛地运用在医学、生命科学、化学、工程......