`
雪临凝冰
  • 浏览: 32093 次
  • 性别: 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() );

相关推荐

    java中Map集合的排序方法

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

    STL_map初始化和排序

    用VC++控制台应用程序实现了STL数据map的使用,map对象数据的初始及其排序

    MapReduce二次排序

    MapReduce二次排序代码实现。 二次排序这里指:在以key为关键字的排序基础上,同时按照value排序

    Java容器类List、ArrayList、Vector及map、HashTable应用

    List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)

    手动实现golang中的map源码

    这些实例将涵盖不同的应用场景和需求,包括键值对的增删改查、遍历、排序等等。通过这些实例的学习,你将能够更加深入地理解Map类型的使用方法和注意事项。 总之,这份资源是一份非常有价值的学习资料,适合想要...

    排序算法的评估指标ranking-measures-and-loss-functions-in-learning-to-rank

    该文档论述了排序算法和推荐系统的评估标准NDCG和MAP的原理和应用

    浅析stl序列容器(map和set)的仿函数排序

    有序的stl容器在工程中应用什么方便和广泛,但是当我们需要自己的排序的时候,可以用仿函数来设置它

    基本排序算法及其在MapReduce的应用

    冒泡、选择、插入三种作为基本的排序算法是必须要掌握的,而在MapReduce的实际应用中。在Map阶段,k-v溢写时,采用的正是快排;而溢出文件的合并使用的则是归并;在Reduce阶段,通过shuffle从Map获取的文件进行合并...

    Map和Set的区别

    set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序,如果需要重复则使用multiset,要说区别的话,存储的东西不一样,应用场景不一样,支持的操作也不一样,很多不同。  map和set支持快速查找和...

    MapViewer:Windows应用程序,用于查看和分析链接器生成的Map文件中的信息

    每个视图都可以进行动态过滤和排序,从而使用户可以快速计算各种模块和符号的大小,或者识别出可能无意中包含在项目中的那些模块。 所有列表视图的魔力都是由提供的 该应用程序如下所示: 它主要是为与FTDI 微...

    Android sort按时间排序

    listview 显示数据 子view里有多个view 使用adapter,Collections.sort方式遍历map里的数据

    UE4-Quake-Map-Importer:一个 UE4 插件,用于导入 Quake 风格的 .map 文件(Quake 1、HL 1 和 Q3)并将它们转换为 UE4 笔刷几何体

    UE4 Quake .map 导入器 一个 UE4 插件,用于导入 Quake ...正确排序人脸的顶点 添加支持生成一些实体,例如。 灯光和其他有意义的 解析并应用 UVS 添加对 HL1 格式地图的支持 用户界面和菜单 Cose 整理 当前进度图片:

    TreeMap<K,V>类以及LinkedList<E>

    编写一个应用程序,使用TreeMap,V&gt;类,分别按照价格和容量排序并输出10个硬盘的详细信息 9_5.编写一个应用程序,要求将LinkedList创建的对象写入到文件,然后读出一个LinkedList对象,并遍历LinkedList节点中的数据

    OSM Software Catalog:OpenStreetMap的应用程序目录-开源

    OpenStreetMap软件目录是Windows和Linux(Mono)的桌面应用程序,它充当所有基于OpenStreetMap的应用程序的目录。 支持排序,过滤和比较。 需要.NET 4.5数据源是http://wiki.openstreetmap.org/wiki/Software。 应用...

    MapReduce的小应用

    利用MapReduce框架实现了关于音乐播放网站的两个简单问题。主要解决了多个Map多个Reduce的连接问题,二次排序问题,关于Key降序排序的问题。

    safe-map:安全的

    线程对许多现代应用程序至关重要,最新的C ++标准使启动线程和控制锁变得容易。 不幸的是,STL容器本身不是线程安全的。 尽管可以通过为容器保留一个互斥锁并为每个操作锁定它来解决单个容器函数调用的非原子性,...

    基于Python实现的数据结构与算法完整源代码+超详细注释(包含46个作业项目).zip

    38_图的应用-拓扑排序 39_图的应用-强连通分支Kosaraju 40_图的应用-最短路径问题 41_图的应用-最小生成树 42_最短距离Dijkstra算法和最小生成树prim算法的区别 a1_查找第一个和最后一个元素位置 a2_斐波那契数列 aa...

    java遍历特例

    JDK1.5中,应用新特性For-Each循环 Java代码 Map m = new HashMap(); for(Object o : map.keySet()){ map.get(o); } Map m = new HashMap(); for(Object o : map.keySet()){ map.get(o); } 返回的...

    java8新特性视频详解

    JDK8 新特性 ...1、简介 2、接口新特性应用 2.1、default方法设计及实现 2.2、接口中的static方法设计及实现 2.3、函数式接口设计及实现 3、lambda表达式应用 ...映射操作(map) 6、新日期对象应用

Global site tag (gtag.js) - Google Analytics