首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java中HashMap的排序

Java中HashMap的排序
EN

Stack Overflow用户
提问于 2016-10-13 05:07:53
回答 3查看 83关注 0票数 1

我有一个地图,里面有键和值

键:-案例1,案例2......case 10

值:- Jan,Feb......Oct

现在,当我把这张地图放在数组列表中时(这样我就可以对它进行排序)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (String key : dataValueMap.keySet()) {
    System.out.println(key + " " + dataValueMap.get(key));
}
ArrayList<String> keys = new ArrayList<String>(
dataValueMap.keySet());
Collections.sort(keys);
for (String counter : keys) {
   System.out.println(counter); >>>>>BUT it prints like :- case 1  then  case 10  then  case 2, case 3, case 4 etc.
}

请帮忙解决这个问题,

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-13 05:14:57

使用自定义Comparator实现对集合进行排序。它接受并比较键的整数,但依赖于大小写n的格式。

示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<String> keys = new ArrayList<>();
keys.add("case 10");        
keys.add("case 3");        
keys.add("case 1");
keys.add("case 2");        
Collections.sort(keys, new Comparator<String>() {

    @Override
    public int compare(String s1, String s2) {
        s1 = s1.split(" ")[1];
        s2 = s2.split(" ")[1];
        return Integer.compare(Integer.parseInt(s1), Integer.parseInt(s2));
    }
});

for (String key : keys) {
    System.out.println(key);
}
票数 3
EN

Stack Overflow用户

发布于 2016-10-13 05:17:50

如果您确定键格式,则可以按空间将其拆分,并将实际值与比较器进行比较,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Map<String, Object> myMap = 
        new TreeMap<String, Object>(new Comparator<String>()
        {
            public int compare(String o1, String o2)
            {
                Integer value1 = Integer.parseInt(o1.split("\\s+")[1]);
                Integer value2 = Integer.parseInt(o2.split("\\s+")[1]);
                return value1.compareTo(value2);
            } 
});

虽然如果键格式不正确,它会中断,但我们可以根据预期的行为添加对该格式的处理。

票数 1
EN

Stack Overflow用户

发布于 2016-10-13 05:46:19

那么,您只需为您的字符串版本定义一个新的自定义Comparator,并且可以编写将从列表中比较两个字符串的任何逻辑。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<String> keys = new ArrayList<>();

keys.add("case 10");    
keys.add("case 3");        
keys.add("case 1");
keys.add("case 2");

Comparator<String> comparator = new Comparator<String>(){
    @Override
    public int compare(String s1, String s2) {
        return Integer.compare(Integer.parseInt(s1.substring(5)), Integer.parseInt(s2.substring(5)));
    }  
};

Collections.sort(keys, comparator);
for (String counter : keys) {
    System.out.println(counter);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40021925

复制
相关文章
Mysql在字段现有内容后面追加内容
在发布系统中所有前置任务里面增加一些内容,发布系统中大约有200+的项目,手动是不可能手动的,只有在数据库中操作了。
行 者
2019/12/05
3K0
Access追加查询
大家好,上节介绍了操作查询中的更新查询,本节介绍追加查询的内容。操作查询的注意点都是一样的,就不再重复。
无言之月
2020/08/25
3.4K0
Access追加查询
Mac OSX 给现有的应用追加基于文档的功能
在Xcode中创建Cocoa Application 工程时,通常有两种选择类型:<code>基于文档的Application</code> 和<code>非文档的Application</code>,具体是哪一种类型,关键在于创建工程的时候,你是否选中下图中的<code>Create Document-based Application</code>选项:
代码行者
2018/08/23
6440
Mac OSX 给现有的应用追加基于文档的功能
RewriteRule指令[通俗易懂]
作为RewriteRule指令的第三个参数。 Flags是一个包含以逗号分隔的下列标记的列表:
全栈程序员站长
2022/08/27
3910
Java将内容追加/添加到现有文件
如果您希望代码创建一个新文件并删除以前的现有文件,则FileWriter可以轻松代替它。要替换现有文件中的所有内容,请使用以下命令:
用户7886150
2021/04/28
3.1K0
多维数组追加,修改,查询,删除
找到指定元素进行修改,查询,删除,追加,和一维数组操作实际一样,关键找到需要修改多维数组需要修改元素的位置。修改代码演示:
十月梦想
2018/08/29
1.5K0
【Java实现】向现有Map键追加值而非覆盖
使用this.put(“String”, “String”)方法添加一个键值对。但是,它会覆盖现有值,而我想使用同一个键存储和配对多个值。
JavaEdge
2022/11/30
1.3K0
RewriteCond RewriteRule
## Rules for TR and ES country sites RewriteCond %{REQUEST_URI} ^/(tr|es)$ [NC] RewriteRule ^(.*) https://xx.com [L,R=301] ##
全栈程序员站长
2022/09/01
2170
薪酬数据的追加查询 - 附视频
我们在年底做薪酬的数据分析的时候,需要把一年的薪酬数据做做追加的汇总,也就是说把每个月的数据做汇总,在做这个数据汇总的时候,我们在EXCEL的 PQ里就可以用到追加查询,用追加查询功能可以在几秒钟之间来完成数据的汇总。
王佩军
2022/02/10
7790
薪酬数据的追加查询 - 附视频
linux使用--根目录空间不足,追加空间到根目录下
最近在爬虫,要保存大量的源码在linux上,最后发现根目录不足,想要追加根目录的空间,我的系统是centos7,还好之前分配了一整个系统盘给centos,有200g,根目录目前使用了50g,现在从home目录分配100g给root目录,剩50g给自己,也就是home目录,我目前就给home留了40g,之前都给的时候出了些小问提,还没琢磨出来,就少分一点,我们先用着,可能是 Free  PE 的问题 。如果是安装时候硬盘空间用完了,也可以进行再挂载一个硬盘进行追加空间。
拓荒者
2019/08/22
15.4K0
linux使用--根目录空间不足,追加空间到根目录下
翻遍全网!找到最好的【Java实现】向现有Map键追加值而非覆盖
使用this.put(“String”, “String”)方法添加一个键值对。但是,它会覆盖现有值,而我想使用同一个键存储和配对多个值。
JavaEdge
2021/04/09
6710
重定向 rewriteRule
大家好,又见面了,我是你们的朋友全栈君。 重定向学习视频 https://www.imooc.com/learn/798 1、RewriteRule R 说明 RewriteRule ^/?(.
全栈程序员站长
2022/08/28
3.6K0
重定向 rewriteRule
Apache 中RewriteRule 规则参数[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。[size=medium] Apache 中RewriteRule 规则参数 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。
全栈程序员站长
2022/08/28
3.5K0
Python追加Excel追加数据
前面我分享了 Excel 的读写:Python 实现 Excel 的读写操作:https://bornforthis.cn/column/pyauto/auto_base05.html
AI悦创
2022/07/17
2.9K0
Apache的URL地址重写(RewriteCond与RewriteRule)
大家好,又见面了,我是你们的朋友全栈君。Apache的URL地址重写 http://hi.baidu.com/sonan/blog/item/c408963d89468208bba16716.html 第一种方法:Apache环境中如果要将URL地址重写,正则表达式是最基本的要求,但对于一般的URL地址来说,基本的匹配就能实现我们大部分要求,因此除非 是非常特殊的URL地址,但这不是我要讨论的范围,简单几招学会Apache中URL地址重写,通过实例展示,轻松学会URL地址重写: URL实例
全栈程序员站长
2022/06/30
2.4K0
如何在 Linux 中为现有用户创建主目录?
在Linux系统中,每个用户都有一个主目录,通常称为home目录,用于存储用户的个人文件和配置信息。然而,有时候我们会创建一个新的用户,但是忘记或者没有选择为其创建一个主目录。在这种情况下,我们需要为现有用户创建主目录。本文将介绍如何在Linux中为现有用户创建主目录。
网络技术联盟站
2023/04/08
4.6K0
python写文件追加 按行追加_python 追加写入
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
3.6K0
Apache中 RewriteRule 规则参数介绍
大家好,又见面了,我是你们的朋友全栈君。Apache中 RewriteRule 规则参数介绍
全栈程序员站长
2022/08/27
12K0
php rewriterule 规则,如何将一条RewriteCond 对应多个RewriteRule规则
RewriteCond是对RewriteRule的条件筛选,一般情况下一个RewriteRule前面有多个RewriteCond,我们想让bbs这个子域名下的链接访问bbs这个目录,而其他子域名则访问web这个子目录,于是有了下面这种写法。
全栈程序员站长
2022/08/28
5330
SQL练习之不破坏应用程序现有查询的修改模式
     当我还是一个菜鸟的时候,当然现在也是,当我的软件需求发生变化时,并且数据库设计同样要求发生变化,我通常会放弃原有的代码(或者对原有的代码进行大改),先在我知道了两个不破坏应用程序现有查询的修改模式,下面就来一个个介绍! 假设你的公司有一张记录在数据库中的设备登记表: 资产标识    描述              收到日期 50430     桌面PC           2016-5-6 50431     19寸监视器     2016-5-7 现在公司再融资之后,进行了扩张,在另一个地方又建
郑小超.
2018/01/24
8260
SQL练习之不破坏应用程序现有查询的修改模式

相似问题

如何设置当前菜单锚链接的父锚链接的样式?

10

如何设置家长论坛链接到菜单页面?

10

如何根据是否已登录而设置超链接条件

10

在页脚中设置页面链接?

10

如何删除主题设置页面上的链接回退?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文