使用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的顺序问题相关推荐

  1. Go 学习笔记(12)— 字典map定义、初始化、读取字典、删除字典、清空字典、map 按 key 进行有序遍历

    Go 中字典也叫做 map , map 是一种无序的键值对的集合. map 最重要的一点是通过 key 来快速检索数据, key 类似于索引,指向数据的值. 1. 字典定义 可以使用内建函数 make ...

  2. Java小知识-----Map 按Key排序和按Value排序

    Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...

  3. c++ map 获取key列表_好未来Golang源码系列一:Map实现原理分析

    分享老师:学而思网校 郭雨田 一.map的结构与设计原理 golang中map是一个kv对集合.底层使用hash table,用链表来解决冲突 ,出现冲突时,不是每一个key都申请一个结构通过链表串起 ...

  4. java treemap value排序_【TreeMap】对Map按key和value分别排序

    使用TreeMap可以对key 和Value进行排序 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. ** Tree ...

  5. Map根据Key值进行排序(升序加降序)

    Map根据Key值进行排序 如果这篇文章对你有帮助的话,希望可以给博主点个赞,感谢!! 今天在写一个功能的时候,需要根据日期进行分组,于是我从数据库查找的时候就使用order by create_ti ...

  6. 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)已跪~~~~(_)~~~~

    某公司招聘的面试环节, 有这样一个题目:结构体作为STL map的key时需要注意什么? 对于懂STL map的同学来说, 这个题目还是比较easy的, 先看程序: #include <iost ...

  7. 使用用户自定义类型作为map的key

    有时候我们想把用户自定义类型作为std::map的键值. 方法一)最简单的方法就是实现该自定义类型的<操作符,代码如下: class Foo { public:     Foo(int num_ ...

  8. Map 的 key、value 是否允许为null

    Map的key和value是否允许null? 直接写程序验证一下: import java.util.HashMap; import java.util.Hashtable; import java. ...

  9. 使用可变对象作为Java Map的key,会带来潜在风险的一个例子

    package hashMap;import java.util.HashMap; import java.util.Map;/* * 可变对象是指创建后自身状态能改变的对象.换句话说,可变对象是该对 ...

  10. java map byte[],java中byte数组不能作为map的key使用

    今天在使用java写代码的时候,用byte数组作为map的key来使用,发现在遍历的时候get到之前传进去的值总是为空,很是困惑,后来查了下资料发现java中的字节数组不能直接作为map的key来使用 ...

最新文章

  1. python真的那么火吗-现在为什么 Python 这么火?
  2. 什么是工装服_王俊凯穿连体工装亮相跨年晚会,中国风满满的设计,尽显帅气...
  3. “个人核心竞争力”与“危机感”
  4. 初级php工程师应该具备什么,一名合格的PHP工程师需要掌握的知识结构
  5. electron 解压zip_如何将Node.js中的.zip/.rar文件解压缩到文件夹中
  6. PHP页面运行一半,在PHP中仅缓存页面的一部分
  7. jdbc获取一行字符串_JDBC基础
  8. mysql排插问题_MySQL一次数据插入故障记录
  9. 华为mate20pro权限管理_华为钉子户--谈谈Mate20Pro
  10. 【转】四阶魔方还原1
  11. 只出现一次的数字 (桶排序和位运算)
  12. 23.MySQL 函数
  13. 计算机应用与维修的视频,开关电源原理与维修视频全集(1-30集)
  14. CSDN论坛新手指南
  15. 2022前端vue面试题
  16. 微型计算机的地址加法器,地址加法器
  17. 为你的YOLOv5任意版本添加Grad-CAM等热图可视化
  18. 蝉知CMS7.0.1后台模板Getshell
  19. 巨头“围攻”之下,新氧医美能否“破局”?
  20. 《数字电子技术基础》6.4 时序逻辑电路——设计方法(FSM)有限状态机

热门文章

  1. Python通过future处理并发
  2. 学习SpringMVC——说说视图解析器
  3. 菜鸟学Linux命令:ssh命令 远程登录
  4. [Hadoop] Hadoop学习历程 [持续更新中…]
  5. 《Effective Java读书笔记》--序列化
  6. Django使用心得(四)
  7. 小机箱的评估,立人 vs Jobs机箱
  8. [Unity3D]关于NaN(Not a Number)的问题
  9. 自动化安装Cacti(1.0.1/2/3)脚本
  10. 21天养成习惯?不一定