关于Map迭代循环,key和value的顺序问题
使用Hashtable,keySet()返回的顺序为降序(key降顺序) ---->6, 5, 4, 3, 2, 1
使用TreeMap,keySet()返回的顺序为升序(key升顺序) ---->1, 2, 3, 4, 5, 6
使用HashMap,keySet()返回的顺序为乱序(随机顺序) ---->3, 2, 1, 6, 5, 4
使用LinkedHashMap,keySet()返回的顺序为原序(put顺序) ---->1, 2, 6, 3, 4, 5
1 package map2json; 2 3 import java.util.HashMap; 4 import java.util.Hashtable; 5 import java.util.Iterator; 6 import java.util.LinkedHashMap; 7 import java.util.Map; 8 import java.util.Map.Entry; 9 import java.util.Set; 10 import java.util.TreeMap; 11 12 public class IterMap { 13 public static void main(String[] args) { 14 map1(); 15 map2(); 16 map3(); 17 getKV(); 18 } 19 20 public static Map<String, String> setMap() { 21 // 使用Hashtable,keySet()返回的顺序为降序(key降顺序) ---->6, 5, 4, 3, 2, 1 22 // 使用TreeMap,keySet()返回的顺序为升序(key升顺序) ---->1, 2, 3, 4, 5, 6 23 // 使用HashMap,keySet()返回的顺序为乱序(随机顺序) ---->3, 2, 1, 6, 5, 4 24 // 使用LinkedHashMap,keySet()返回的顺序为原序(put顺序) ---->1, 2, 6, 3, 4, 5 25 Map<String, String> map = new LinkedHashMap<String, String>(); 26 map.put("1", "a"); 27 map.put("2", "b"); 28 map.put("6", "a"); 29 map.put("3", "c"); 30 map.put("4", "d"); 31 map.put("5", "e"); 32 return map; 33 } 34 35 public static void map1() { 36 37 Set<String> set = setMap().keySet(); 38 System.out.println(set.toString()); 39 for (String str : set) { 40 String valueString = setMap().get(str); 41 System.out.println(str + ":" + valueString); 42 } 43 } 44 45 // 通过实体getKey和getValue 46 public static void map2() { 47 Iterator<Entry<String, String>> it = setMap().entrySet().iterator(); 48 while (it.hasNext()) { 49 Entry<String, String> entry = it.next(); 50 System.out.println("key= " + entry.getKey() + " and value= " 51 + entry.getValue()); 52 } 53 } 54 55 // 数据较多时使用 56 public static void map3() { 57 for (Entry<String, String> en : setMap().entrySet()) { 58 en.getKey(); 59 en.getValue(); 60 System.out.println(en.getKey() + ":" + en.getValue()); 61 } 62 } 63 64 // 得到所有的key和value的方法 65 public static void getKV() { 66 System.out.println(setMap().keySet().toString()); 67 System.out.println(setMap().values().toString()); 68 } 69 70 }
转载于:https://www.cnblogs.com/hyblogs/p/10451641.html
关于Map迭代循环,key和value的顺序问题相关推荐
- Go 学习笔记(12)— 字典map定义、初始化、读取字典、删除字典、清空字典、map 按 key 进行有序遍历
Go 中字典也叫做 map , map 是一种无序的键值对的集合. map 最重要的一点是通过 key 来快速检索数据, key 类似于索引,指向数据的值. 1. 字典定义 可以使用内建函数 make ...
- Java小知识-----Map 按Key排序和按Value排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...
- c++ map 获取key列表_好未来Golang源码系列一:Map实现原理分析
分享老师:学而思网校 郭雨田 一.map的结构与设计原理 golang中map是一个kv对集合.底层使用hash table,用链表来解决冲突 ,出现冲突时,不是每一个key都申请一个结构通过链表串起 ...
- java treemap value排序_【TreeMap】对Map按key和value分别排序
使用TreeMap可以对key 和Value进行排序 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. ** Tree ...
- Map根据Key值进行排序(升序加降序)
Map根据Key值进行排序 如果这篇文章对你有帮助的话,希望可以给博主点个赞,感谢!! 今天在写一个功能的时候,需要根据日期进行分组,于是我从数据库查找的时候就使用order by create_ti ...
- 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)已跪~~~~(_)~~~~
某公司招聘的面试环节, 有这样一个题目:结构体作为STL map的key时需要注意什么? 对于懂STL map的同学来说, 这个题目还是比较easy的, 先看程序: #include <iost ...
- 使用用户自定义类型作为map的key
有时候我们想把用户自定义类型作为std::map的键值. 方法一)最简单的方法就是实现该自定义类型的<操作符,代码如下: class Foo { public: Foo(int num_ ...
- Map 的 key、value 是否允许为null
Map的key和value是否允许null? 直接写程序验证一下: import java.util.HashMap; import java.util.Hashtable; import java. ...
- 使用可变对象作为Java Map的key,会带来潜在风险的一个例子
package hashMap;import java.util.HashMap; import java.util.Map;/* * 可变对象是指创建后自身状态能改变的对象.换句话说,可变对象是该对 ...
- java map byte[],java中byte数组不能作为map的key使用
今天在使用java写代码的时候,用byte数组作为map的key来使用,发现在遍历的时候get到之前传进去的值总是为空,很是困惑,后来查了下资料发现java中的字节数组不能直接作为map的key来使用 ...
最新文章
- python真的那么火吗-现在为什么 Python 这么火?
- 什么是工装服_王俊凯穿连体工装亮相跨年晚会,中国风满满的设计,尽显帅气...
- “个人核心竞争力”与“危机感”
- 初级php工程师应该具备什么,一名合格的PHP工程师需要掌握的知识结构
- electron 解压zip_如何将Node.js中的.zip/.rar文件解压缩到文件夹中
- PHP页面运行一半,在PHP中仅缓存页面的一部分
- jdbc获取一行字符串_JDBC基础
- mysql排插问题_MySQL一次数据插入故障记录
- 华为mate20pro权限管理_华为钉子户--谈谈Mate20Pro
- 【转】四阶魔方还原1
- 只出现一次的数字 (桶排序和位运算)
- 23.MySQL 函数
- 计算机应用与维修的视频,开关电源原理与维修视频全集(1-30集)
- CSDN论坛新手指南
- 2022前端vue面试题
- 微型计算机的地址加法器,地址加法器
- 为你的YOLOv5任意版本添加Grad-CAM等热图可视化
- 蝉知CMS7.0.1后台模板Getshell
- 巨头“围攻”之下,新氧医美能否“破局”?
- 《数字电子技术基础》6.4 时序逻辑电路——设计方法(FSM)有限状态机