最近写到一个程序,返回了map,但是经过查阅资料,map是没有顺序的,各种查阅资料无果,最后自己写了这个方法。。

1,通过map集合的keySet()方法,获取到一个包含map所有key的Set集合

2,定义一个新的TreeSet集合(TreeSet集合有自动排序功能)

3,将第一步得到的Set集合遍历赋给TreeSet集合,这样所有key都排好序并保存在TreeSet里面

4,然后通过TreeSet的迭代器遍历,并同时根据迭代器返回的key,一个一个取出map里面的value

----------------------------------------------------------------代码示例------------------------------------------------------------------------------

Map<Integer, String> oldMap=new HashMap<Integer,String>();//待排序的map集合
Map<Integer, String> newMap=new HashMap<Integer,String>();//排序后的map集合
Set<Integer> keySet = oldMap.keySet();//存放key的set集合
TreeSet<Integer> keyTreeSet = new TreeSet<Integer>();//存放key排序后的set集合
Iterator<Integer> itKeySet;//Set集合的迭代器
Iterator<Integer> itKeyTreeSet;//TreeSet集合的迭代器

  //放入一些测试数据
  oldMap.put(1, "content1");
oldMap.put(5, "content5");
oldMap.put(6, "content6");
oldMap.put(10, "content10");
oldMap.put(11, "content11");
oldMap.put(100, "content100");
oldMap.put(999, "content999"); keySet=oldMap.keySet();//获取map的所有key
itKeySet=keySet.iterator();
while (itKeySet.hasNext()) {
  Integer key = (Integer) itKeySet.next();
  System.out.print(key+" ");//打印排序前key的顺序
    keyTreeSet.add(key);
} System.out.println("\n"); itKeyTreeSet=keyTreeSet.iterator();
while (itKeyTreeSet.hasNext()) {
  Integer key = (Integer) itKeyTreeSet.next();
  System.out.print(key+" ");//打印一下排序后key的顺序
    newMap.put(key, oldMap.get(key));//此时根据排序好的TreeSet挨个取出Map里面的value,此处我只是放到了一个newMap中
}

打印key结果如下所示

有序取出Map集合的元素的更多相关文章

  1. 有序的Map集合--LinkedHashMap

    提出问题: 在写一个dao的时候,我的需求是这个dao是一个万能的,目前的方法只有一个查询出实体类对应的表中所有的数据,通过传入的对象,利用反射获取实体类中的属性名,属性类型,利用字符串拼接获取相应属 ...

  2. java的取出map里所有元素的两种方式

    /* * 取出map元素的两种方式 */package com.map.test; import java.util.HashMap;import java.util.Iterator;import ...

  3. Java分享笔记:使用entrySet方法获取Map集合中的元素

    /*--------------------------------- 使用entrySet方法取出Map集合中的元素: ....该方法是将Map集合中key与value的关系存入到了Set集合中,这 ...

  4. 集合框架-Map集合

    * Map集合和Collection集合的区别? * Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的.可以把这个理解为:夫妻对 * Collection集合存储元素是单独出现的, ...

  5. Map集合与转化

    |--Hashtable:底层是哈希表数据结构,是线程同步的.不可以存储null键,null值. |--HashMap:底层是哈希表数据结构,是线程不同步的.可以存储null键,null值.替代了Ha ...

  6. Java | Map集合

    Map集合 在现实生活中,有非常多的东西,是和另外一种东西对应的,并且还是唯一的,比如:身份证号与个人,个人与手机,一夫一妻...等,这种关系就是对应关系,又叫做映射.Java为这种数据类型提供了专门 ...

  7. Javase之集合体系(4)之Map集合

    集合体系之Map集合 ##Map<K,V>( 接口 ) 特点:将键映射到值对象,一个映射不能包含重复的键:每个键只能映射一个值 Map集合与Collection集合的区别 ​ Map集合存 ...

  8. HashMap,ConcurrentHashMap原理。Collection(list,set,map集合区别)。和CAS

    collection里面有什么子类?(list和set是实现了collection接口的.) List: 1.可以允许重复的对象(可重复,有序集合).2.可以插入多个null元素.3.常用的实现类有 ...

  9. Android(java)学习笔记102:Map集合功能概述

    下面通过代码引入Map集合:如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生来说,是 ...

随机推荐

  1. HTTP 状态码整理

  2. [ bootstrap ] 实现卡片里面包含图片、内容、操作按钮,形成左中右的布局

    描述: 如图 实现: <div class="card border-0 mb-3 mt-3"> <!-- 列表头部 --> <div class=& ...

  3. 官方文档粗读 - Tutorial

    参考: https://www.jianshu.com/p/0d234e14b5d3 1.Connecting 我们通过 create_engine() 来链接数据库,假设我们我们采用SQLite. ...

  4. 为 MySQL 的 root 用户设置一个密码。

    shell> mysqladmin --user=root password somepasswordshell> mysqladmin --user=root --password re ...

  5. Go语言实战-爬取校花网图片

    一.目标网站分析 爬取校花网http://www.xiaohuar.com/大学校花所有图片. 经过分析,所有图片分为四个页面,http://www.xiaohuar.com/list-1-0.htm ...

  6. 安装Apache-storm-0.9.1-incubating图解教程

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6596214331988247054/ 安装步骤 (1) 安装Zookeeper集群,可以参考前一篇文章,本文已安装 ...

  7. vue js格式化数字为金额格式

    /** * @description 格式化金额 * @param number:要格式化的数字 * @param decimals:保留几位小数 默认0位 * @param decPoint:小数点 ...

  8. vue-cli 在IE下兼容设置

    最近我们的项目选择用vue来做开发,在这个过程IE兼容性 首先我们按照步骤来安装vue-cli 创建项目运行 npm install npm run dev 然后我们在ie9下打开发现没有用但是vue ...

  9. javax.el.PropertyNotFoundException: 类型[xx.xxx.xxxx]上找不到属性[xxxx]

    今天在JSP利用EL表达式取值报了 "javax.el.PropertyNotFoundException" 1 Caused by: org.apache.jasper.Jasp ...

  10. python实现掘金定时签到抽奖

    python实现掘金定时签到抽奖 一. 概述 这里记录一下使用 python 实现掘金定时签到抽奖.首先需要登录掘金,进入签到页面,按 F12 打开浏览器的调试面板,选择 Network,选择 XHR ...