有序的hashmap_在待排序的元素基本有序的前提下

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

如何给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类,通常应创建子类, …

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/206717.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 什么是泛型?为什么要用泛型?什么是泛型擦除?泛型擦除的过程?

    什么是泛型?为什么要用泛型?什么是泛型擦除?泛型擦除的过程?泛型:本质是参数化类型。为什么要使用?创建集合的时候,往集合里面添加数据,再次取出时,集合会忘记这数据类型,该对象的编译类型就会变成Object类型,否则如果想要变回原来的数据类型的时候,就要强制进行转换。创建集合的时候,我们就指定集合类型,避免这个过程。泛型擦除?Java的泛型处理过程都是在编译器中进行的,编译器首先会生成bytecode码,这个过程是不包括泛型类型,泛型类型在编译的时候是

  • 圆柱体的立方米怎么计算公式_圆锥体积计算公式

    圆柱体的立方米怎么计算公式_圆锥体积计算公式2020-11-27石雕圆柱制作价格一般根据石雕圆柱的雕刻材料不同、颜色不同、大小及工艺的复杂程度价格区间一般在5000–25000元每根。坐落于福建省泉州市惠安县的腾磊石材有限公司是石材圆柱厂家,专业生产石雕圆柱。提供各式石雕圆柱加工,客户可来电方式咨询关于石雕圆柱。我国的石雕圆柱文化除了具有图腾性质和纪念性的华表、墓表…[详细]2020-12-14厂家加工石雕圆柱坐落于福建省泉州市惠安县…

  • Otsu‘s Thresholding的工作原理「建议收藏」

    Otsu‘s Thresholding的工作原理「建议收藏」Otsu’sThresholding的工作原理

  • Java遍历map集合的4中方式

    方法一通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。Map<Integer,Integer>map=newHashMap<Integer,Integer>();for(Map.Entry&l…

  • android scaleanimation动画,Animation之ScaleAnimation(缩放动画片)「建议收藏」

    android scaleanimation动画,Animation之ScaleAnimation(缩放动画片)「建议收藏」Animation之ScaleAnimation(缩放动画)ScaleAnimation(缩放动画)缩放的意思就是对图片或者文字等进行扩大或缩小。下面开始编写代码,相关重要属性参数的解释都在代码中。1、编写main.xml文件。xmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”andr…

    2022年10月15日
  • JAVA中字符串常量池和缓冲池理解与作用「建议收藏」

    JAVA中字符串常量池和缓冲池理解与作用「建议收藏」字符串池与常量池是完全不同的两个东西,但是很多地方都喜欢把它们混为一谈,很容易让初学者产生误解,在这里我想好好讨论一下它们。字符串池也可以被称为字符串常量池,我认为这个名称就是产生误解的根源,有些人说着说着就把字符串三个字省略了,只剩下了常量池…所以为了避免误解,我建议在指代字符串对象的缓存池的时候,就直接称之为字符串池1常量池常量池分为两个类型,一是.class文件中静态的常量池,二是.class文件中的静态常量池被加载到JVM中而形成的运行时常量池。1.1静态常量池.cla

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号