如何给HashMap中的值排序?这个问题很多人都遇到过,很常见的一个方案是使用LinkedHashMap,因为LinkedHashMap可以记住元素放入的顺序,可以认为是真正的“有序”(想让HashMap有序是不可能的),我比较喜欢。然而问题是往往数据已经封装在了HashMap中,我们必须手动的排序后再放入LinkedHashMap,这当然也就成了思路,代码实现起来也很简单,写出来看起来还挺舒服的,顺手记一下:

Map myMapTmp = XXDao().getXXX();

Map myMap = new LinkedHashMap();

List keyList = new ArrayList();

Iterator it =myMapTmp.keySet().iterator();

while(it.hasNext()){

keyList.add(it.next());

}

Collections.sort(keyList);

Iterator it2 = keyList.iterator();

while(it2.hasNext()){

String key = it2.next();

myMap.put(key, myMapTmp.get(key));

}

值得注意的是Collections.sort()方法,API上的解释是:根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此外,列表中的所有元素都必须是可相互比较的(也就是说,对于列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。我已经测试过String类型是可以直接使用这个接口的,如果你的list中元素是自定义的,那么就要自己实现Comparable,自己编写比较器了。

说了这么多,正文其实是在这里,在用ibatis的queryForMap是查出的结果是无序的,即便是sql中有orderby,即便是ibatis文件中指定了返回值类型(有序类型,如TreeMap,LinkedHashMap),ibatis对数据的填充到底是怎么弄的,我也不清楚,所以才只能在内存中排序,也不失是一种办法,同时抛砖引玉,看看有没有大侠给说说有没有其他办法。

Map HashMap 排序 迭代循环 修改值

HashMap dgzhMap = Dict.getDict("dgzh"); Iterator it_d = dgzhMap.entrySet().iterator(); whi ...

HashMap 排序

本文章,摘抄自:2018黑马程序最新面试题汇总 已知一个 HashMap集合, User 有 name(String)和 age(int)属性.请写一个方法实现 ...

HashMap排序的问题

那么已知一个HashMap集合, User有name(String)和 age(int)属性.请写一个方法实现对HashMap 的排序功能,该方法接收 Hash ...

Java零基础手把手系列:HashMap排序方法一网打尽

HashMap的排序在一开始学习Java的时候,比较容易晕,今天总结了一些常见的方法,一网打尽.HashMap的排序入门,看这篇文章就够了. 1. 概述 本文排序HashMap的键(key)和值(va ...

dao层取值用List<map<String,Object>>接收有序map

发现一个好玩的Map, 当需要Map有序时用java.util.LinkedHashMap接收,是有序map resultType="java.util.LinkedHashMap&quot ...

为什么HashMap继承了AbstractMap还要实现Map?

前言 之前看源码一直忽略了这个现象,按理说HashMap的父类AbstractMap已经实现了Map,它为什么还要实现一次呢?遂上网查了一下,背后原因让人大跌眼镜. 原因 这是类库设计者的拼写错误,其 ...

Hive中的排序和分组(对map和reduce的影响,值得一看!)

order by order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规 模较大时,需要较长的计算时间. set ...

lambda匿名函数sorted排序函数filter过滤函数map映射函数

lambda函数:表示匿名函数,不需要def来声明,一句话就能搞定. 语法:函数名=lamda 参数:返回值 求10的10次方 f=lambda n:n**n print(f(10)) 注意: 函数名 ...

Java中HashMap排序

注: 转载于 http://www.cnblogs.com/xingyun/archive/2012/12/09/2809962.html package com.holdobject; import ...

随机推荐

angularjs之插件ngRoute和ngAnimate

使用ngRoute和ngAnimate配合使用,可以实现页面切换的效果. 如果有使用过swiper,就知道这个效果是怎么样的. 代码:

Windows 命令大全

打开控制面板的方法:输入control,回车即可打开. 以下是“运行”里常见的命令: gpedit.msc-----组策略 sndrec32-------录音机 Nslookup-------IP地址 ...

jquerymobile listview 局部刷新

function onSuccess(data, status) { data = $.trim(data); // alert(data); // return; if (data) { $('#l ...

php随笔5-thinkphp OA系统 人力资源管理

最近闲来无事,自己尝试通过thinkphp3.1.3框架开发一套自己的OA系统,目前已完成了人力资源管理部分的内容,遇到并解决了几个问题. 1.由于刚开始不太熟悉thinkphp的框架,花费了一些功夫 ...

Ubuntu上搭建DokuWiki

1.准备工作 1) 安装Apache sudo apt-get install apache2 2)在浏览器中输入http://localhost 如果现实It works则说明Apache安装成功, ...

Windows下文件或文件夹不能删除时的解决办法

windows在删除文件或文件夹时,提示文件或文件夹被占用而无法删除 解决办法:win7: winxp:需要借助第三方工具Unlocker.360.Process Explorer(这个是微软支持的) ...

QTP脚本不能录制怎么办?

QTP是基于VBS脚本语言的,大部分VBS脚本都能在QTP上运行,只是在一些细节上略有不同,比如说VBS上停止用sleep,QTP上用wait.QTP的强大之处在于对程序窗口的操作,有很多针对窗体的属 ...

【NOIP2014提高组】解方程

https://www.luogu.org/problem/show?pid=2312 对于30%的数据,n<=2,暴力带入试解.对于50%的数据,ai很大,结合高精乘法和霍纳算法暴力代入试解. ...

【设计模式】抽象工厂模式 Abstract Factory Pattern

简单工厂模式是一个工厂类根据工厂方法的参数创建不出不同的产品, 工厂方法模式是每一个产品都有一个一一对应的工厂负责创建该产品.那么今天要讲的抽象工厂模式是一个工厂能够产生关联的一系列产品.抽象工厂模式 ...

PJSUA2开发文档--第八章 好友(Buddy)类

8  好友(存在)Buddy PJSUA2的功能是围绕Buddy类为中心展开的.该类表示一个远端好友(伙伴,一个人或一个SIP端点). 8.1 子类化Buddy类 要使用Buddy类,通常应创建子类, ...

android 有序map,给HashMap排序,使之成为有序Map相关推荐

  1. 现在有一个map集合如下: Map<Integer,String> map = new HashMap<Integer, String>(); map.put(1, “

    代码 import java.util.*;/*4. 现在有一个map集合如下:Map<Integer,String> map = new HashMap<Integer, Stri ...

  2. day13【Map、斗地主排序、冒泡排序】

    今日内容 Map集合 斗地主案例 冒泡排序 教学目标 能够说出Map集合特点 使用Map集合添加方法保存数据 使用"键找值"的方式遍历Map集合 使用"键值对" ...

  3. Java Map以及HashMap、TreeMap、HashTable

    Map 本文主要介绍Map接口以及其主要实现类:HashMap.LinkedHashMap.TreeMap.Hashtable.Properties,其中包括HashMap.TreeMap的底层实现原 ...

  4. hashmap中的key是有序的么_Java中的HashMap,为什么输出竟然是有序的

    展开全部 你是遇到巧合了吧,例如使用如下代码e5a48de588b662616964757a686964616f31333365666234输出:public static void main(Str ...

  5. java用循环给map里面存值_Java中如何遍历Map对象的4种方法

    方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. 1 Map map = new HashMap();2 3 for ...

  6. Android的HashMap方法,Android中实现HashMap排序的方法

    HashMap排序是数据结构与算法中常见的一种排序算法.本文即以Android平台为例来实现该算法. 具体代码如下: public static void main(String[] args) { ...

  7. 对Map的一些分析和总结,有序map,排序,

    可以直接拖到后面看应用 HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashM ...

  8. 建立一个按年龄排序的有序链表,每个结点包括学号、姓名、性别、年龄。建立一个新的结点,通过年龄将此结点插入到链表中去,使之仍然有序

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容12]建立一个按年龄排序的有序链表,每个结点包括学号.姓名 ...

  9. 集合-2(Set(HashSet、TreeSet、LinkedHashSet)、List(ArrayList、LinkedList、Vector)、Map(HashMap、TreeMap...))

    1.Set接口 集合中的元素不能重复,所以存入Set的元素都必须定义equals()来确保对象的唯一性. 无序.无索引 1.1HashSet类 实现了Set接口,此实现不是同步的. 由哈希表支持.实际 ...

  10. Collections、Set、Map、斗地主排序

    Collections.Set.Map.斗地主排序 今日内容 Collections shuffle sort自然排序 比较器排序 可变参数[重] addall方法 Set接口 hashCode 哈希 ...

最新文章

  1. 广州那所大学有自考计算机专业,广州自考本科大学有哪些
  2. Maven工程的分类
  3. MockupBuilder
  4. 小弟个人学习的过程!!!
  5. matlab 信道模拟 差错概率,移动信道差错序列的分布概率模拟法及门限电平的讨论...
  6. FFmpeg之mp4提取/h265(二十五)
  7. Oracle 数字与空值的排序问题
  8. bxl类型封装转换为AD库封装
  9. stata15中文乱码_Stata转excel中文乱码解决方法
  10. ios 纯代码怎么适配ipad_程序员或可在iPad上编程 苹果可能正在适配iPad版Xcode
  11. types是什么意思中文翻译成_types是什么意思_types的翻译_音标_读音_用法_例句_爱词霸在线词典...
  12. 保利威视云直播的python API
  13. r语言员工离职_基于随机森林的优秀员工离职因素实证分析及预测
  14. 中大近代物理实验实验报告(LaTeX实现)
  15. 3dmax顶点动画导入unity_从3dmax如何导入物体到unity3d
  16. 计算机教师招聘笔试总结
  17. 大数据实战之Spark-Flume-Kafka-idea-Mysql实时处理数据并存储
  18. 基于JAVA的校园论坛系统设计与实现
  19. PyQt5:ToggleButton开关按钮(24)
  20. [已更新]redmi3s+miui8+xposed sdk23

热门文章

  1. vs2017调用目标发生了异常
  2. Yaml读写--SnakeYaml
  3. C#经纬度坐标算距离
  4. 天轰穿典型三层架构留言本9级视频教程
  5. 阿里一键生成代码工具
  6. myline java线段类,MyLine 编写一个线段类 MyLine 联合开发网 - pudn.com
  7. Error in cool_function[1] : object of type ‘closure‘ is not subsettable
  8. 全球最快下载工具 XDM
  9. Unity PID 控制算法可视化学习
  10. python开发web靠谱吗_Python用来做Web开发的优缺点,你心里必须要记得这些