`

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

分享到:
评论

相关推荐

    HashMap排序

    这里展示了两种不同的实现方式: - 使用`TreeMap`:创建一个`TreeMap`对象并传入`ByValueComparator`作为构造函数参数,然后将`HashMap`的所有键值对放入`TreeMap`中。 - 使用`Collections.sort()`:创建一个包含...

    HASHMAP排序功能描述

    有两种主要方法可以对HashMap进行排序: - **使用LinkedHashMap** LinkedHashMap是HashMap的一个子类,它维护了元素的插入顺序或者访问顺序。如果想要按照插入顺序排序,直接使用LinkedHashMap即可。如果需要按照...

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

    Java HashMap两种简便排序方法解析 Java HashMap是一种常用的数据结构,然而,它的储存是没有顺序的,按照key的HashCode实现。这使得在 certainsituations下的排序变得非常重要。下面,我们将介绍两种简便的排序...

    Android中实现HashMap排序的方法

    如果需要对HashMap进行排序,通常有两种方式:一种是转换为LinkedHashMap,另一种是通过创建一个Entry集合并对其进行排序。 1. 转换为LinkedHashMap: LinkedHashMap是HashMap的一个子类,它保留了插入顺序,或者...

    ArrayList,HashMap

    ArrayList和HashMap是Java编程语言中两种非常重要的集合类,它们都是Java集合框架(Collections Framework)的一部分,用于存储和管理对象。ArrayList属于List接口的实现,而HashMap则实现了Map接口。两者在用途、...

    hashmap.zip

    在Java编程语言中,HashMap是一种常用的集合类,它实现了Map接口,用于存储键值对...此外,了解HashMap内部结构也有助于选择更适合特定场景的其他数据结构,如TreeMap(按键排序)或ConcurrentHashMap(线程安全)。

    HashMap资料.zip

    8. **HashMap的遍历方式**:HashMap可以通过`keySet()`、`entrySet()`和`values()`方法分别获取键的集合、键值对的集合和值的集合进行遍历,其中`entrySet()`通常是最高效的遍历方式。 9. **HashMap与HashTable的...

    关于hashMap的一些讨论

    需要注意的是,HashMap不保证映射的顺序,也就是说,它不会保持插入顺序或任何特定的排序方式。 #### 二、HashMap的数据结构 HashMap的基本数据结构可以概括为“链表散列”,也就是数组和链表的组合。这种数据结构...

    Go-Go的hashmap使用加密随机种子散列提示开放寻址和罗宾汉哈希

    在Go语言中,HashMap是一种非常重要的数据结构,用于存储键值对。在Go 1.13版本之后,为了提高哈希表的安全性和性能,引入了一些先进的哈希算法和技术,其中包括使用加密随机种子、散列提示、开放寻址以及罗宾汉哈希...

    对Map按key和value分别排序

    在 Java 中,可以使用 Comparator 来改变 TreeMap 的排序方式。例如,以下代码展示了如何使用 Comparator 实现降序排序: ```java Map, String&gt; map = new TreeMap, String&gt;( new Comparator() { public int ...

    Java Map 按照Value排序的实现方法

    在实际应用中,选择哪种排序方法取决于具体需求。如果需要频繁根据Value排序,使用TreeMap配合自定义Comparator可能是最佳选择。如果只是偶尔排序,转换为List并使用Collections.sort()也足够。务必注意,排序操作会...

    最快的排序算法 千万级亿级数组排序最快的实现方法,排序算法数据结构

    快速排序算法是一种 divide-and-conquer 排序算法,它通过选择数组中的一个元素作为分区点,将数组分成两个部分,然后递归地排序这两个部分。快速排序算法的时间复杂度为O(n log n),因此它在大规模数据中的应用是...

    java实现的map排序

    Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会记录插入顺序,也不保证顺序。如果需要有序的Map,可以使用TreeMap,它会根据键的自然顺序进行...

    java 中 TreeMap排序

    在提供的代码片段中,我们看到了两种自定义排序的例子: a) 对于简单的排序,如数字和英文字母,我们可以创建一个新的`Comparator`,重写`compare()`方法。在这个例子中,比较两个对象(假设它们都是`String`类型...

    对map里面的value进行排序

    要对Map的value进行排序,通常有两种方法: 1. 使用`Collectors.toMap()`方法 Java 8引入了Stream API,我们可以利用这个强大的工具对Map进行操作。假设我们有一个Map, Integer&gt;,可以使用以下代码对value进行排序...

    Java中HashMap和TreeMap的区别深入理解

    HashMap和TreeMap是Java中两种常用的Map实现,它们各自具有不同的特性和使用场景。 HashMap是基于哈希表实现的,其核心思想是通过键对象的hashCode()方法来快速定位到对应的桶(bucket),从而提高查找效率。...

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

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

    Topo排序

    在拓扑排序的过程中,通常会用到两种主要的数据结构:队列和栈。在这个案例中,我们有四个文件,它们可能是Java实现的类: 1. `Graph.java` - 这个文件可能包含了图的数据结构实现,包括节点和边的表示。在拓扑排序...

Global site tag (gtag.js) - Google Analytics