使用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

 package map2json;

 import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap; public class IterMap {
public static void main(String[] args) {
map1();
map2();
map3();
getKV();
} public static Map<String, String> setMap() {
// 使用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
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("1", "a");
map.put("2", "b");
map.put("6", "a");
map.put("3", "c");
map.put("4", "d");
map.put("5", "e");
return map;
} public static void map1() { Set<String> set = setMap().keySet();
System.out.println(set.toString());
for (String str : set) {
String valueString = setMap().get(str);
System.out.println(str + ":" + valueString);
}
} // 通过实体getKey和getValue
public static void map2() {
Iterator<Entry<String, String>> it = setMap().entrySet().iterator();
while (it.hasNext()) {
Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}
} // 数据较多时使用
public static void map3() {
for (Entry<String, String> en : setMap().entrySet()) {
en.getKey();
en.getValue();
System.out.println(en.getKey() + ":" + en.getValue());
}
} // 得到所有的key和value的方法
public static void getKV() {
System.out.println(setMap().keySet().toString());
System.out.println(setMap().values().toString());
} }

关于Map迭代循环,key和value的顺序问题的更多相关文章

  1. Java Map按键(Key)排序和按值(Value)排序

    Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V ...

  2. Android 对Map按key和value分别排序

    一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...

  3. Java Map 按Key排序和按Value排序

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

  4. 对Map按key和value分别排序

    一.理论准备         Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.         TreeMap:基于红 ...

  5. 【Java】对Map按key和value分别排序

    一.什么是Map? 在讲解Map排序之前,我们先来稍微了解下map. map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. ...

  6. STL map 按key值和按value值排序

    map是用来存放<key, value>键值对的数据结构,能够非常方便高速的依据key查到对应的value. 假如存储水果和其单位价格.我们用map来进行存储就是个不错的选择. 我们这样定 ...

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

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

  8. map的key排序

    java map的key排序吗 java为数据结构中的映射定义了一个接口java.util.Map,他实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMap ...

  9. 理解ThreadLocal —— 一个map的key

    作用: 当工作于多线程中的对象使用ThreadLocal维护变量时,threadLocal为每个使用该变量的线程分配一个独立的变量副本. 接口方法: protected T initialValue( ...

  10. 指针做MAP的KEY的TEST

    用struct做map的key会需要"operator <"等等,还会出现奇怪的问题可能. 试了下用指针做key,看看效果: #include <iostream> ...

随机推荐

  1. pt-osc原理、限制、及与原生online-ddl比较

    1. pt-osc工作过程 创建一个和要执行 alter 操作的表一样的新的空表结构(是alter之前的结构) 在新表执行alter table 语句(速度应该很快) 在原表中创建触发器3个触发器分别 ...

  2. Hadoop 高可用(HA)的自动容灾配置

    参考链接 Hadoop 完全分布式安装 ZooKeeper 集群的安装部署 0. 说明 在 Hadoop 完全分布式安装 & ZooKeeper 集群的安装部署的基础之上进行 Hadoop 高 ...

  3. form表单中使用a标签代替button或commit进行数据提交

    1.申明form的id:xxx 2.在<a>标签内书添加属性 onclick="document:xxx.submit()" ​

  4. java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

  5. NOIP2018考前抱佛脚——数据结构基础及STL实现

    目录 动态数组 栈 队列 优先队列 动态数组 srand(time(0)); std::vector<int> qwq; for(int i = 1;i <= 10;++i) qwq ...

  6. kafka服务无法启动的原因

    kafka集群中一台服务器kill掉后再启动时报错. java.io.IOException: Map failed Caused by: java.lang.OutOfMemoryError: Ma ...

  7. c# winform 自动升级

    winform自动升级程序示例源码下载  客户端思路: 1.新建一个配置文件Update.ini,用来存放软件的客户端版本: [update] version=2011-09-09 15:26 2.新 ...

  8. 如何为已有的类没有生成toString的方法增强生成toString方法

    1:只要提到增强,我的第一思路就是代理,动态代理.但是仅仅是一个toString其实没必要使用代理模式了,有点大材小用了(动态代理其实也是最后通过反射生成toString的方法). 2:简单粗暴,可以 ...

  9. java使用纯命令行打包项目

    1: javac -d 编译之后的class文件输出目录   指定源文件位置即可.例如 对于多个包下面的源码编译,貌似javac不支持迭代编译,可能需要一次传入多个源码位置进行编译.一种便捷方法就是使 ...

  10. 环境搭建(Python)

    Python 开发环境搭建 Windows篇   一. Python安装 资源获取 登录Python官网的Windows下载页面https://www.python.org/downloads/win ...