`

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

分享到:
评论

相关推荐

    Java HashMap两种简便排序方法解析

    主要介绍了Java HashMap两种简便排序方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    人工智能-项目实践-python-顺序表、链表、栈、队列、树、Hashmap等数据结构;排序、二分法查找、树遍历等常见算法实现

    顺序表、链表、栈、队列、树、...Python中的list和tuple两种类型采用了顺序表的实现技术 链表 单向链表 双向链表 单向循环链表 栈 队列 FIFO队列 LIFO队列 优先队列(Priority Queue) 双端队列(double-ended queue)

    Java容器有两种基本类型Collection 和 Map

    Java 容器的两种基本类型:Collection 和 Map Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能...

    面试集锦:收集JAVA的各种面试题目,以及解题思路或者答案,解题技巧

    4、你知道哪几种排序算法? 5、HashMap和HashTable的区别,并说明其底层实现数据结构。 6、HashMap满了之后怎么扩容? 7、Linux中远程传输文件有什么方式? 8、说说Java中异常的分类。 9、TCP和UDP的区别,TCP...

    TextSortingInFile

    TextSortingInFile 计划行动: 打开.txt文件; 将文件读入字符串; 给文件穿衣服; 从字符串中删除单词不能包含的所有符号;... 对HashMap进行排序(两种排序方式-通过字母和单词出现); 将结果写入文件Output.txt

    互联网面试手写代码常见题总结.docx

    当然还有一种方式就是两个数组先排个序,之后依次比较是否相同,相同指针共同进一,不相同值小的进一。 这道题目考察了数组的操作和hashmap的应用,可以使用hashmap来存储一个数组,然后再遍历另一个数组来找到交集...

    java中set、list和map的使用方法实例

    // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该对象的内部细节。 // 学习set对象容器的使用 // set容器中的对象不允许重复 // set容器接口的实现类有HashSet和 ...

    变态JAVA面试32问

    "JAVA面试问题解决" 以下是从给定的文件中生成的相关知识点: 1. Final、Finally、Finalize 的区别: * Final 修饰符:如果一...* 断言可以有两种形式:assert Expression1 ; 和 assert Expression1 : Expression2 ;

    leetcode分类-ARTS:1.Algorithm:每周至少做一个leetcode的算法题2.Review:阅读并点评至少一篇英文技术文章

    求众数,两种实现方式: 1 hashmap 2 先排序,再取下标为len/2的值 分享:spark shuffle 算法: 朴素贝叶斯 决策树 第四周打卡: leetcode: 缺失的最小正整数:部分数据比较并替换,排好序后再依次遍历。 share: ...

    浅谈Java中的Set、List、Map的区别.docx

    最基本的两种检索集合中的所有对象的方法: 1. for 循环和 get() 方法: for(int i=0; i();i++){ System.out.println(list.get(i)); } 2. 使用 迭代器(Iterator): Iterator it=list.iterator(); while(it....

    leetcode实践

    56 stl-sort二维数组75双指针vector-swap交换347451为stl-sort排序(hashmap + 2dvector) 215 stl-sort数值大小排序179 stl-sort数值逐位排序跟随串联大小排序251快排冒泡stl-sort排序45个字符串排序 映射哈希集 45...

    Java题目基础面试资料.doc

    HashMap 和 Hashtable 是 Java 中两个常用的 Map 实现类。它们的主要区别在于历史原因、同步性和值。Hashtable 是基于陈旧的 Dictionary 类的,HashMap 是 Java 1.2 引进的 Map 接口的一个实现。Hashtable 是线程...

    Java面试大合集

    断言可以有两种形式: assert Expression1 ; assert Expression1 : Expression2 ; Expression1应该总是产生一个布尔值。Expression2可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的String消息。 ...

    JAVA面试题最全集

    除了使用new关键字创建对象意外,试列举另外三种以上创建实例的方式? 37.classloader中,JDK的API、Classpath中的同web-inf中的class加载方式有什么区别? 38.列举三种以上垃圾回收算法,并比较其优缺点? 39....

    leetcode题库-JavaInterview:关于采访和书籍的注意事项

    线程使用方式、两种互斥同步方法、线程协作、JUC、线程安全、内存模型、锁优化。 运行时数据区域、垃圾收集、类加载。 JavaIO知识,字符流,字节流,Socket,NIO。 操作系统 网络 面向对象 Gof 的 23 种设计模式。 ...

    leetcode二维数组-LeetCode:力扣每天

    给出了两种解决方案,第一种是使用heap查找所有路径,这种方式比较复杂,但是可以复习一下heap的知识。 另一种解决方案是使用recursive ,代码简单易懂。 第一种解决方案是将两个已排序的数组组合为一个已排序的数组...

    关于JAVA面试的100题及其答案

    Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来...

    进销存系统文档作业例子

    Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来...

    超级有影响力霸气的Java面试题大全文档

     Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常...

Global site tag (gtag.js) - Google Analytics