`
雪临凝冰
  • 浏览: 32878 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Map应用 分享一下Map 排序

    博客分类:
  • java
 
阅读更多

目的:将一个java Map("String","ActionStatResult")根据其value中ActionStatResult的字段来排序,并得到该对象的倒序   List<ActionStatResult>;

思路:1. 用map.values()分离出Map中的value值对象,并转化为List<ActionStatResult>

         2. 对List<ActionStatResult>进行排序,可参考Collections.sort(List,Comparator)排序;

参考代码如下:

 

public List<ActionStatResult> mapArrayListSort(Map<String,ActionStatResult> map ){

      //将Map中的value(其中放着ActionStatResult)值提取出来并转化为一个List对象
      List<ActionStatResult> actionList = new ArrayList<ActionStatResult>(map.values()); 

      // sort排序, 其中用匿名内部类比较器.. 

      Collections.sort(actionList,new Comparator<ActionStatResult>(){

         @Override
         public int compare(ActionStatResult o1, ActionStatResult o2) { //倒序排列
             int flag = Long.valueOf(o2.getMaxExecuteTime()).compareTo(Long.valueOf(o1.getMaxExecuteTime()));
              if (flag == 0) {
                  return Long.valueOf(o2.getExecuteCount()).compareTo(Long.valueOf(o1.getExecuteCount()));
              }else{
                     return flag;
                  }
              }
    });


     return actionList;
 }

//例:ActionStatResult对象

public class ActionStatResult {

   private String actionClassName;          //action类名
   private String actionMethodName;      //action 方法名

   private double avgExecuteTime;         // 执行平均时长(毫秒)
   private long maxExecuteTime = Long.MIN_VALUE;   // 执行最长时长(毫秒)
   private long minExecuteTime = Long.MAX_VALUE;   // 执行最短时长(毫秒)
   private long executeCount;          // 执行次数

   //get- and set- ....
}

 


在这里与大家分享一下本人在实际开发过程有用的小模块,有更好的做法或有什么想法,可以大家进行交流。。。

 

 

 

 

 

 

0
1
分享到:
评论
1 楼 Garfield.Geng 2011-05-12  
创建的对象太多了,行数也太多了。
更好的做法:
int flag = o1.getMaxExecuteTime()-o2.getMaxExecuteTime();
return (0!=flag) ? Integer.signum(flag) : Integer.signum( o1.getExecuteCount() - o2.getExecuteCount() );

相关推荐

    对Map的key和value进行排序

    然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足特定的业务需求。 对Map中的key进行排序 对Map中的key进行排序可以使用TreeMap来实现。TreeMap是一个有序的Map,它可以根据key的自然顺序或...

    Java Map 按值排序

    然而,在某些场景下,我们可能需要将Map中的元素按照值(value)进行排序。本文将详细介绍如何在Java中实现Map按值排序的几种方法。 1. 使用TreeMap TreeMap是Java中实现Map接口的一个类,它内部使用红黑树数据结构...

    java实现的map排序

    Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会...理解了上述内容后,即使存在个别字词识别问题,也不影响对Java中Map排序方法的理解和应用。

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

    每个节点上的Map函数负责对输入数据进行局部排序,通常采用快速排序、归并排序等高效的排序算法。这个阶段的目标是生成一系列键值对,其中键是排序依据,值是对应的原始数据。 2. Shuffle阶段:Shuffle阶段是...

    java map实例,排序

    在实际应用中,选择哪种Map实现取决于具体的需求。如果需要快速查找且不关心顺序,`HashMap`可能是最好的选择;如果需要保持插入顺序,可以使用`LinkedHashMap`;如果需要按键排序或自定义排序,那么`TreeMap`更为...

    map排序.txt

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

    STL_map初始化和排序

    在标题"STL_map初始化和排序"中,我们主要关注两个方面:初始化和排序。接下来将详细解释这两个主题。 ### 1. STL Map 的初始化 在C++中,我们可以使用多种方式来初始化一个`map`对象: #### (1) 使用大括号初始...

    java中Map集合的排序方法

    Map中元素存放是无序的 HashMap注意事项: 1,HashMap底层维护一个数组,我们向HashMap中所放置的对象实际上是存储在该数组当中; 2,当向HashMap中put一对键值时,它会根据key的hashCode值计算出一个位置,该位置...

    windows版svm-map文档分类排序

    综上所述,Windows版SVM-MAP是一个基于支持向量机的文档排序工具,它通过最大化平均精度均值来优化信息检索结果,适用于NLP领域的各种应用场景。在实际使用中,用户需要了解相关算法背景,掌握数据预处理和模型训练...

    Activity 间intent传递有序排序的map集合

    在这个场景中,我们关注的是如何在Activity之间通过Intent传递一个有序且可排序的Map集合。理解这个知识点对于优化应用的数据传输流程至关重要。 首先,Map接口在Java中提供了若干实现类,如HashMap、LinkedHashMap...

    Map排序

    但是通常,这样的博文可能会详细解释Map排序的各种方法、性能差异以及实际应用中如何选择合适的方法。 标签中的“源码”可能是指分析Map排序的底层实现,比如HashMap和TreeMap的源代码,这可以帮助我们理解它们的...

    IAR MAP文件分析

    在实际应用中,MAP文件可以帮助我们了解程序在内存中的分布情况,查找内存泄露和优化程序的性能。同时,MAP文件也可以帮助我们了解程序的编译过程和内存使用情况。 在编译IAR工程时,需要注意路径错误的问题。如果...

    C++11 unordered_map与map(插入,遍历,Find)效率对比。

    首先,`std::map`是基于红黑树实现的有序关联容器,它保证了容器内的元素按照键值排序。这意味着插入新元素时,会进行比较并重新调整树结构,以保持排序。而`std::unordered_map`则是基于哈希表实现的无序关联容器,...

    SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名

    在SpringBoot和Mybatis的集成应用中,我们经常需要处理数据映射,特别是从数据库查询结果转换成Java对象。在Java编程中,驼峰命名法(Camel Case)是常用的变量和方法命名规则,它使得代码更易读、更符合编程规范。...

    map_map_增删查改_STL_C++_

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

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

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

    浅谈Java之Map 按值排序 (Map sort by value)

    在Java编程中,Map接口表示一组键值对的集合,其中...无论选择哪种方法,关键是理解如何控制排序逻辑,并确保在处理键值对时正确地应用这些逻辑。在实际开发中,根据项目需求和团队的熟悉程度,可以选择最适合的方法。

    map和set的异同

    2. **有序性**:`map`和`set`都保证了元素的有序性,默认情况下按照升序排序。 3. **高效性**:由于红黑树的特性,使得`map`和`set`在插入、删除和查找操作上都具有较高的效率。 4. **迭代器**:`map`和`set`支持...

    java8-如何使用Stream API对Map类型元素排序.pdf

    在Java 8中,Stream API引入了许多新的特性,使得对数据结构的操作更加简便高效,其中包括对Map类型元素的排序。本文将深入讲解如何使用Stream API对Map进行排序,包括按键排序、按值排序以及使用`merge()`函数处理...

    JavaScript实现Array(数组)和Map

    在JavaScript中,Array和Map是两种非常重要的数据结构,它们各有各的特点和应用场景。这篇文章将深入探讨这两个概念,以及如何在实际开发中使用它们。 首先,Array是JavaScript中最基础的数据结构之一,它允许我们...

Global site tag (gtag.js) - Google Analytics