`

利用map的value进行排序

    博客分类:
  • java
阅读更多
2009-03-19 playfish (架构师)

map内部是按照hash算法存储的,但如果能对map排序在某些时候还是有用的。
Java代码

   1. /**
   2.     * @param h
   3.     * @return
   4.     * 实现对map按照value升序排序
   5.     */ 
   6.    @SuppressWarnings("unchecked") 
   7.    public static Map.Entry[] getSortedHashtableByValue(Map h) { 
   8.        Set set = h.entrySet(); 
   9.        Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set 
  10.                .size()]); 
  11.        Arrays.sort(entries, new Comparator() { 
  12.            public int compare(Object arg0, Object arg1) { 
  13.                Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString()); 
  14.                Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString()); 
  15.                return key1.compareTo(key2); 
  16.            } 
  17.        }); 
  18.  
  19.        return entries; 
  20.    } 
分享到:
评论

相关推荐

    对map里面的value进行排序

    然而,有时我们需要对Map中的值进行排序,例如按照value的大小进行升序或降序排列。这篇博客"对map里面的value进行排序"探讨的就是如何实现这一需求。 首先,我们了解Map接口的基本概念。Map接口不直接支持排序,...

    Android 对Map按key和value分别排序的实例

    总的来说,对Android中的Map进行key排序可以使用TreeMap配合自定义Comparator,而进行value排序则需要先将Map的entrySet转换为List,再利用Collections的sort方法。理解这些排序机制有助于我们在实际开发中更有效地...

    java map 集合 排序

    然而,Map默认不保证元素的顺序,如果需要按照特定规则进行排序,我们需要用到特定类型的Map或者手动排序。本文将深入探讨Java Map集合的排序方法。 一、TreeMap:自动排序 1. **TreeMap** 是一个基于红黑树实现的...

    STL_map初始化和排序

    在STL中,`map`是一个关联容器,它存储键值对(key-value pairs),其中每个键都是唯一的,并且通过键进行排序。`map`的实现通常基于红黑树,这保证了其在插入、删除和查找操作上的平均时间复杂度为O(log n)。 在...

    一个简单的利用map关联容器进行单词转换的实例

    `map`内部会自动按照键的排序规则来组织元素,因此查找效率非常高,时间复杂度为O(log n)。 ##### 2.2 Map的创建与插入 ```cpp map,string> trans_map; typedef map,string>::value_type valtype; trans_map.insert...

    Map (c++实现的简易map)

    在C++编程中,`Map`是一种非常重要的数据结构,它允许我们以键值对的形式存储数据,其中每个键(key)都是唯一的,并且通过这个键可以快速访问对应的值(value)。`Map`通常用于存储关联数组,它提供了一种灵活的...

    STL中map用法详解 STL中map用法详解 STL中map用法详解

    STL(Standard Template ...通过理解并熟练运用这些知识点,开发者可以在C++项目中有效地利用map来管理和操作数据。记住,map的效率得益于其内部的红黑树实现,可以保证插入、查找和删除操作的时间复杂度为O(log n)。

    map_map_增删查改_STL_C++_

    4. 比较函数(comparison function):默认情况下,`map`按照键的升序排列,但可以通过自定义比较函数改变排序规则。 ### 增加元素 增加元素到`map`中通常使用`insert`或`emplace`函数。`insert`接受一个键值对,...

    ordered-map:按值排序的HashMap

    这样,当我们插入`ByValue`对象到`BTreeMap`时,它们将按照内部`value`字段的值进行排序。 在实际应用中,`ordered-map`可以用于各种场景,如日志记录(按时间戳排序)、统计分析(按数量或频率排序)或者任何需要...

    解决jsoncpp未按照添加顺序输出字符串的问题

    添加元素时:: Json::Value root; root["name"] = Json::...这是因为jsoncpp内部使用map进行存储key,默认是从小到大的顺序进行排序; (2)附件为修改好的,可以按照添加顺序进行输出的jsoncpp;有需要的同学可以下载

    STL中map用法详解

    `map`是一个关联容器,它按照键的排序来组织元素。每个元素都是一个键值对,其中键是唯一的,而对应的值可以重复。`map`使用红黑树(Red-Black Tree)作为底层实现,保证了插入、删除和查找操作的时间复杂度为O(log...

    Hadoop平台技术 排序操作案例.docx

    MapTask首先将处理结果暂存到一个环形缓冲区,当缓冲区利用率到达一定阈值时,会执行快速排序并将排序后的数据溢写到磁盘上。最后,所有磁盘上的文件会进行一次归并排序,生成多个有序的小文件。 2. ReduceTask排序...

    map总结,原理,使用

    4. **自动排序**:内部自动按键的排序顺序存储元素,因此可以通过键的顺序遍历整个 map。 #### 三、Map 的功能 - **自动建立 Key-Value 对应关系**:用户只需提供键值对,map 会自动建立并维护这种对应关系。 - **...

    STL测试程序map的使用方法

    在这个“STL测试程序map的使用方法”项目中,我们将深入探讨如何在VC++环境下利用STL中的map容器进行数据排序。 **STL Map简介** STL中的map是一个关联容器,它存储键值对(key-value pairs),其中每个键都是唯一...

    map集合以及IO流

    `Map`接口是Java集合框架的一部分,它不直接继承自`Collection`接口,因为其元素不是单一的值,而是键值对(key-value pairs)。常见的`Map`实现有`HashMap`、`TreeMap`、`LinkedHashMap`等。每个`Map`实现都有其...

    JavaScript实现Array(数组)和Map

    `map.js` 文件可能会展示如何创建和操作Map,以及在实际项目中如何利用Map优化数据存储和查询。 `object.js` 文件可能涉及到的是JavaScript对象的操作,虽然不是直接与Array或Map相关,但它们在JavaScript中是重要...

    全 C++ map 的用法

    默认情况下,`map`容器使用键的默认排序规则进行排序。但是,可以通过自定义比较函数或类来自定义排序规则。 示例代码: ```cpp struct MyComparator { bool operator()(const int& left, const int& right) const...

    c++MAP使用类

    在C++编程中,`std::map`是一个非常重要的数据结构,它是一个关联容器,能够存储键值对(key-value...通过运行和理解这个示例,学习者可以更好地掌握`std::map`的用法,从而在实际项目中有效地利用这一强大的数据结构。

    10亿个字符串的排序问题

    Map阶段将数据分片并进行局部排序,Reduce阶段则负责合并这些局部排序的结果,最终得到全局有序的字符串序列。 2. **B-TREE基数排序**: 基数排序是一种非比较型整数排序算法,适合处理包含多个字符的字符串。它的...

    vector与map简介_map_资料_vector_

    `std::map`是一种关联容器,它维护了一个排序的元素集合,每个元素都是一个键值对。键通常是唯一的,用于查找元素,而值则与键相关联。`map`使用红黑树实现,确保了插入、查找和删除操作的时间复杂度为O(log n)。 *...

Global site tag (gtag.js) - Google Analytics