HashMap两种类型

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("d", 2);
map.put("c", 1);
map.put("b", 1);
map.put("a", 3);

List<Map.Entry<String, Integer>> infoIds =
    new ArrayList<Map.Entry<String, Integer>>(map.entrySet());

//排序前
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//d 2
//c 1
//b 1
//a 3

//排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
    public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
        //return (o2.getValue() - o1.getValue());
        return (o1.getKey()).toString().compareTo(o2.getKey());
    }
}); 

//排序后
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//依据key序列
//a 3
//b 1
//c 1
//d 2
//依据value序列
//a 3
//d 2
//b 1
//c 1
时间: 2024-08-08 09:37:24

HashMap两种类型的相关文章

5Internet套接字的两种类型

可是可不想吓着你这儿只讲两种.除了这些,扯谎.正本还有很多.啥意思?有两种类型的Internet套接字?不.计划别的介绍的"RawSockets"也是十分健壮的很值得查阅. 此不议论.那么这两种类型是啥呢?一种是"StreamSockets"流格局)别的一种是)往后谈到时分也会用到"SOCK_SPEA M"和 "SOCK_DGRA M"数据报套接字有时也叫"无联接套接字"假定你确实要联接的时分能够用conn

块级标签与预格式化文本标签----------大多数XHTML可以表示为两种类型的标签:块标签(block tag)和内联标签(inline tag)

1 <html> 2 <head> 3 <meta charset="utf-8"> 4 <title>块级标签</title> 5 </head> 6 7 <body> 8 9 块级标签 10 就像标题.段落一样,需要在页面上占据一块的位置的标签. 11 <h1> 最大的标题 <h2> - <h6> 大小依次减小的标题 <p> 段落 12 13 <

两种类型的人, 不需要敏捷开发的实践

牛人的开发人员,将高效写成简洁,质量高的代码的实践,已自然而然的融入在自身的 DNA.血液中.所以,能以极高的效率将设计.开发.测试融为一体. 牛人的测试人员,已自然而然的将所需的测试路径,清晰的呈现在自身的脑海中.所以,牛人的测试人员,不是没有设计测试用例,而是他(她)们早已将所需的测试用例,自然而然的烙印在自身的脑海中. "敏捷开发的实践对两种类型的人是完全没有任何帮助的,是完全不需要的; 其一是: 厉害的牛人, 其二是: 怠惰的恐龙."

JavaScript中两种类型的全局对象/函数(转)

转自:http://www.cnblogs.com/snandy/archive/2011/03/19/1988626.html 这里所说的JavaScript指浏览器环境中的包括宿主环境在内的.第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Objec

多任务处理的两种类型

多任务处理的两种类型: 1.基于进程 进程是指一种“自包容”的运行程序,由操作系统直接管理,直接运行.有自己的地址空间,每一个进程开启都会消耗内存.基于进程的特点是允许计算机同时运行两个或多个程序. 2.基于线程 线程是指进程内部里的顺序控制流.一个进程拥有多个线程,多个线程共享一个进程的内存空间. 主线程:main方法一旦运行,就开启主线程. 主线程的特点: 1.最先开始 2.最后结束 3.产生其他的子线程 4.回收资源

【TEMPORARY TABLE】Oracle两种类型功能特点比较

临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对当前会话或事务可见.每个会话只能查看和修改自己的数据. 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表. 1)ON COMMIT DELETE ROWS 它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMI

c中无符号(unsigned)和有符号(signed)两种类型。

整型的每一种都分为:无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned.无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据,比如16位系统中一个short能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535.由于在计算机中,整数是以补码形式存放的.根据最高

1.模块2.循环导入问题及解决思路3.区分py文件的两种类型4.模块的查找顺序5.模块的绝对导入与相对导入6.项目开发的目录规范

一.模块 什么是模块? 模块就是一系列功能的结合体 模块的三种来源: 1.内置的(python解释器自带的) 2.第三方的(别人写的) 3.自定义的(你自己写的) 模块的四种表现形式: 1.使用python编写的py文件(也就是意味着py文件也是可以称之为模块 2.已被编译为共享库或DLL的或C++扩展(了解) 3.把一系列模块组织到一起的文件夹(文件夹下有一个__init__.py文件,该文件夹称之为包) 4.使用C编写并连接到Python解释器的内置模块 模块选择 1.用别人写好的模块(内置

JDKJDK1.8 HashMap两种扩容的情况和转红黑树

JDK1.8 HashMap两种扩容的情况.1,当map实际数量等于threshold容量的阈值时,会进行两倍扩容.2,当map中数组中某个桶的链表长度大于树形化阈值TREEIFY_THRESHOLD=8时, 并且map元素的数量小于树形化最小容量MIN_TREEIFY_CAPACITY=64时候,容量进行两倍扩容. 否则树形化阈值8并且map元素个数大于64时,进行链表转红黑树. put方法 treeifyBean树形化方法: 原文地址:https://www.cnblogs.com/cyrb