有序的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类,通常应创建子类, …

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jquery的ajax例子

    jquery的ajax例子Jquery实现Ajax登录验证页面<%@pagecontentType=”text/html;charset=UTF-8″language=”java”%><html><head><title>Title</title><scriptsrc=”${pageContext.request.contextPath}/static/js/jquery-3.6.0.js”></script>

    2022年7月26日
    5
  • snmp trap服务_SNMP服务

    snmp trap服务_SNMP服务浅谈Linux中开发SNMPTrapSNMPTrap是一种标准的报告机制,广泛应用在各种网络管理软件中。本文详细介绍了SNMPTrap的基本概念,以及Linux下面net-snmp对SNMPTrap的开发与应用。1.SNMPTrap简介SNMP简单网络管理协议(SimpleNetworkManagementProtocol)是一种应用层协议,是TCP/IP协议族的一部分。它使网络设备之间能…

    2022年8月22日
    5
  • 编程实现盗版QQ「建议收藏」

    编程实现盗版QQ「建议收藏」源码下载(附件1 )一、思路分析  (一) 数据包的角度 (二) 钩子角度 1. 钩子简介 2. 程序流程 ;二、 实现过程   (一) 定义宏   (二) 枚举进程找到QQ.exe   (三) 枚举所有窗口,找属于QQ.exe的窗口   (四) 获取用户名、密码、登陆按钮的句柄   (五) 创建钩子用的DLL   (六) 安装钩子  一直以来我对盗QQ这种技术都比较的好奇,最近为了练

    2022年7月20日
    12
  • Dockerfile语法及构建简单镜像

    Dockerfile语法及构建简单镜像

    2021年6月2日
    100
  • NOIP 2012 文化之旅 题解[通俗易懂]

    NOIP 2012 文化之旅 题解[通俗易懂]来水一篇题解,我看洛谷上说的这道题的数据特别水,于是就写了很水的做法。题目:P1078[NOIP2012普及组]文化之旅-洛谷|计算机科学教育新生态(luogu.com.cn)题目背景本题是错题,后来被证明没有靠谱的多项式复杂度的做法。测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确。因此本题题目和数据仅供参考。题目描述有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其

    2022年8月22日
    4
  • 动态链接库(DLL)初始化例程失败_failed to load中文

    动态链接库(DLL)初始化例程失败_failed to load中文在importtensorflow时遇到以下报错:解决方案如下:1.官网上提到:因为TensorFlow1.6版本起,二进制文件使用AVX指令,这些指令可能无法在旧版CPU上运行,所以我们要看下CPU的指令集。可以使用CPU-Z这个软件来查看:注:该软件我已经放到公号上,读者可以在后台发送”cpu”获取下载链接。如果不支持,则可以考虑更换一台电话。支持的话请看方案二。2.官网同样提到:从TensorFlow2.1.0版开始,…

    2022年9月25日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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