`

排序Map键值对

J# 
阅读更多
//将Map键值对按值降序排序,返回指定个键值对
static def sortor(map, resultLength) {
    def resultList = []
    if (!map.isEmpty()) {
        def  vals = map.values().toArray()
        def  keys = map.keySet().toArray()
        for (int i=0; i < (vals.size() - 1); i++) {
            for (int j=(i + 1); j < vals.size(); j++) {
                if (vals[i] < vals[j]) {
                    //值按降序排序
                    def tempValue = vals[i]
                    vals[i] = vals[j]
                    vals[j] = tempValue
                    //键和值同步排序
                    def tempKey = keys[i]
                    keys[i] = keys[j]
                    keys[j] = tempKey
                }
            }
        }
        def resultKeys = []
        def resultVals = []
        for (int i=0; i < vals.size(); i++) {
            resultKeys << keys[i]
            resultVals << vals[i]
        }
        if (resultLength > vals.size()) {
            resultList << resultKeys
            resultList << resultVals
        } else {
            resultList << resultKeys.subList(0,resultLength)
            resultList << resultVals.subList(0,resultLength)
        }
    }
    return resultList
}
分享到:
评论
2 楼 chenfeng0104 2010-09-17  
这里是手动实现,当然如果用sort()方法就不需要我们考虑实现方法,仅仅给一个比较就行
1 楼 lcwen_08 2010-09-16  
你想得太复杂了

相关推荐

    对Map的key和value进行排序

    Map是Java集合框架中的一种数据结构,用于存储键值对。然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足特定的业务需求。 对Map中的key进行排序 对Map中的key进行排序可以使用TreeMap来实现...

    java实现的map排序

    最后,通过调用map.toString()打印出排序后的Map,可以看到键值对是按照键的升序排列的。 需要注意的是,TreeMap在插入和删除元素时的性能为O(log(n)),而在查找时的性能为O(log(n))。如果需要频繁地插入、删除、...

    对Map按key和value分别排序

    Map 是键值对的集合接口,它的实现类主要包括 HashMap、TreeMap、Hashtable 及 LinkedHashMap 等。其中,TreeMap 是基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据...

    cpp-一个多线程的键值对管理器服务端将键值对以B树形式储存在文件内

    本项目“cpp-一个多线程的键值对管理器服务端将键值对以B树形式储存在文件内”是用C++实现的一个高效且线程安全的键值对管理系统,它利用B树这种数据结构来优化存储和检索效率。 **B树(B-Tree)**是一种自平衡的树...

    Java Map按键排序和按值排序

    Map是一种键值对的集合,它可以按照键或值进行排序。下面,我们将详细地介绍Java Map的按键排序和按值排序。 按键排序(sort by key) Java中的TreeMap,V&gt;类可以实现Map的按键排序。TreeMap,V&gt;是一个基于红黑树的...

    基于Map_Reduce的分布式数据排序算法分析.pdf

    2. Shuffle阶段:Shuffle阶段是MapReduce中的一个重要中间步骤,它负责将Map阶段产生的键值对按照键进行分区和排序。每个节点会将相同键的值聚合在一起,为Reduce阶段做准备。这个阶段通常包含网络传输,因此优化...

    Java Map 按值排序

    这个例子中,我们使用了Ordering的`natural().onResultOf()`方法来根据值进行排序,`reverse()`使排序变为降序,`immutableSortedCopy::apply`则用于创建一个新的不可变的排序Map。 总结来说,Java提供了多种方式来...

    对map里面的value进行排序

    在Java编程中,Map接口是用于存储键值对的数据结构,它不保证元素的顺序,特别是HashMap类,其遍历顺序可能与插入顺序不同。然而,有时我们需要对Map中的值进行排序,例如按照value的大小进行升序或降序排列。这篇...

    C++中vector可以作为map的键值实例代码

    Map容器使用红黑树作为底层数据结构,要求键值类型必须定义合法的比较运算符,以便实现快速查找和排序。这也意味着,作为键值的类型必须满足特定的要求,例如定义了小于运算符(operator&lt;)等。 然而,在实际开发...

    对于java map类排序

    然后,我们把原始未排序Map的键转换成`Object`数组,并使用`Arrays.sort()`对其进行排序。接下来,我们遍历排序后的键数组,将其与对应的值一起放入新的`TreeMap`中。最后,通过调用`tailMap(result.firstKey())`,...

    Java 对象属性map排序示例

    在Java编程中,Map接口是数据结构之一,用于存储键值对。然而,Map本身并不保证元素的顺序,特别是插入顺序或自然排序。当我们需要按照特定顺序遍历Map中的元素时,就需要对Map进行排序。本示例将详细介绍如何对Java...

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    这里提供了一个名为`createSign`的方法,它接受一个`Map, Object&gt;`类型的参数,并返回一个字符串,其中包含排序后的键值对。下面是对这个方法的详细解释和扩展知识。 1. **`TreeMap`的使用**: `TreeMap`是Java...

    对java中Map集合的讲解

    - `Map`接口定义了一系列操作键值对的方法,如`put()`用于添加键值对、`get()`用于获取指定键对应的值等。 - `Map`接口位于`java.util`包下,它提供了基本的键值对映射功能。 2. **Map的实现类**: - **HashMap*...

    STL_map初始化和排序

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

    如何利用Java8 Stream API对Map按键或值排序

    对于Map,我们可以通过Stream API的`entrySet()`方法获取所有键值对的流,然后进一步操作。 二、HashMap的`merge()`函数 在介绍Map排序之前,了解`merge()`函数很有帮助。`merge()`用于处理键值对插入时的键冲突...

    map排序.txt

    在Java编程中,Map接口是一种常用的数据结构,用于存储键值对。但是,默认情况下,Map并不支持排序操作。然而,在实际应用中,我们常常需要按照特定的顺序来展示或处理Map中的元素。为此,本文将详细介绍两种实现Map...

    java map实例,排序

    在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对的存储功能。在Java中,Map有多种实现类,每种实现类有不同的特性和用途。本篇文章将详细探讨`HashMap`, `LinkedHashMap`, `TreeMap`, 和 `...

    Hashmap 通过对VALUE排序 源代码

    // 输出排序后的键值对 for (Map.Entry, Integer&gt; entry : sortedEntries) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } } } ``` 在这个例子中,我们首先创建了一个...

    java map 集合 排序

    在Java编程语言中,Map集合是一个非常重要的数据结构,它存储键值对,其中每个键都是唯一的。然而,Map默认不保证元素的顺序,如果需要按照特定规则进行排序,我们需要用到特定类型的Map或者手动排序。本文将深入...

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

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

Global site tag (gtag.js) - Google Analytics