`
MyGodness
  • 浏览: 11785 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

list 中存放 map,然后排序

阅读更多

今天同事遇到一个问题,需要在List中存放Map,每个map只存储一对值。

需要按值排序。

勾起了记忆深处的java 比较器。这玩意不常用,估计很多人都没怎么用过。

觉得有点意思,特意贴出来。

 

Public class Test{

    public void test(){
       List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>();
	Map<String,Integer> t1 = new HashMap<String,Integer>();
	Map<String,Integer> t2 = new HashMap<String,Integer>();
	Map<String,Integer> t3 = new HashMap<String,Integer>();
	Map<String,Integer> t4 = new HashMap<String,Integer>();
	t1.put("a", 1);
	t2.put("b", 2);
	t3.put("c", 3);
	t4.put("d", 1);
	list.add(t1);
	list.add(t2);
	list.add(t3);
	list.add(t4);
	Collections.sort(list, new MapCompare());
	System.out.println(list);
    }

    private class MapCompare implements Comparator<Map<String,Integer>>{

      public int compare(Map<String,Integer> o1, Map<String,Integer> o2) {
		int value1 = o1.entrySet().iterator().next().getValue();
		int value2 = o2.entrySet().iterator().next().getValue();
		
		return value1-value2;
	}

   }





}

 

分享到:
评论

相关推荐

    浅谈Java中的Set、List、Map的区别.docx

    Java 中的 Set、List、Map 的区别 Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最...

    Java map存放数组并取出值代码详解

    在Java中,map可以存放数组,并且可以通过不同的方法来取出值。本文将详细介绍Java map存放数组并取出值的代码详解。 一、使用map.keySet()方法 map.keySet()方法可以获取map中的所有key的集合,然后可以通过key来...

    java中Map类[归类].pdf

    此外,`equals(Object o)`和`hashCode()`方法用于比较Map对象的等价性和计算哈希值,这对于实现Map的比较和存放在哈希表中至关重要。 Map接口还有个内部类`Map.Entry`,它代表Map中的一个键值对。通过`Map.entrySet...

    数据结构图的遍历及拓扑排序

    if(map-&gt;maplist[j].id==0&&tag[j]==0)//下一条边节点入度减一,并判断之后入度是否为零且未被访问过 { queue[++real]=j;//让每一个未被访问到的且入度为0的节点进栈 tag[j]=1;//进栈…… } p=p...

    Android开发之对ListView的数据进行排序.txt

    本篇将详细探讨如何针对`ListView`中的数据进行排序,并深入理解其中涉及的技术细节。 #### 一、基本概念与应用场景 **ListView简介:** `ListView`是一种用于展示大量数据的UI组件,它能够根据当前屏幕大小自动...

    Java习题六.docx

    本资源摘要信息涵盖了 Java 中的集合框架,包括 TreeSet、List、Set、Map 等集合类的使用和特性。同时,涵盖了 Lambda 表达式、Stream 接口、 Iterator 等概念。 1. 在创建 TreeSet 对象时,可以传入自定义比较器,...

    Java集合总结.txt

    ps:要想往集合中存放基本数据类型,必须转换为对应的包装类 Collection -- 集合接口 List -- List接口(添加了许多针对下标操作的方法) 特点:有序的,且可重复 ArrayList: 数据结构:一维数组 ...

    专题之java学习大总结.pdf

    - 选择排序则是每次从未排序序列中选出最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续这个过程。 - 插入排序的工作方式像是玩扑克牌时整理牌的动作,每找到一个元素就将它插入到...

    java词频统计

    Java的`Collections.sort()`方法可以用于对Map的键进行排序,然后遍历输出。 ```java List&lt;Map.Entry, Integer&gt;&gt; sortedEntries = new ArrayList(wordCount.entrySet()); sortedEntries.sort(Map.Entry., Integer&gt;...

    Java集合框架详解

    Map中的键需实现Comparable接口以进行排序,或者提供自定义的Comparator。 理解并熟练运用Java集合框架的关键在于掌握每个接口和类的特点,以及它们之间的关系。知道何时选择ArrayList而不是LinkedList,何时使用...

    java集合分类总结.doc

    集合的主要分类有List、Set、Map等。 List集合是一种有序列表,允许存放重复的元素。List集合的主要实现类有ArrayList、LinkedList、Vector等。ArrayList是数组实现的,查询快,增删慢,线程不安全,轻量级。...

    利用Map集合储存并打印数据库信息

    使用`List`集合(如`ArrayList`)来存储多个`Student`对象也是常见的做法,特别是在需要对数据进行排序或者有多条记录的情况下。但在这个实验中,直接使用Map存储,更便于通过学号快速查找学生信息。 总之,这个...

    排序算法-哈斯克尔

    2. **选择排序(Selection Sort)**:选择排序每次从未排序的序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。...

    javaclooections类.docx

    Checked集合确保集合中只能存放特定类型的元素。这在使用原始类型时尤其有用,因为Java的泛型系统在编译时能够检查类型安全,而原始类型则不能。`Collections`提供了以下方法来创建类型检查集合: - `Collections....

    详解shuffle过程

    4. 当整个 map task 结束后再对磁盘中这个 map task 产生的所有临时文件做合并,生成最终的正式输出文件,然后等待 reduce task 来拉数据。 在 reduce 端的情况下,整个流程可以分为三步: 1. Reduce task 从多个 ...

    MapReduce详解Shuffle过程

    4. 当整个map task结束后,再对磁盘中这个map task产生的所有临时文件做合并,生成最终的正式输出文件,然后等待reduce task来拉数据。 reduce端的Shuffle过程: 1. reduce task需要从map task拉取数据,拉取的...

    Java应用程序-习题-第8章.doc

    5. List 主要特征是其元素以线型方式存储,集合中可以存放重复的对象。正确 List 集合的主要特征是其元素以线型方式存储,集合中可以存放重复的对象。 6. 泛型类的构造方法仍然和普通类的构造方法形式是一样的,不...

    java集合类及面试题

    2. Set(无序、不能重复)Set 里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。 3. Map(键值对、键唯一、值不唯一)Map 集合中存储的是键值对,键不能重复,值可以...

    Java高级特性 第一章 集合框架和泛型

    Collections Framework是Java语言中一个基础的数据结构.framework,它提供了多种类型的数据结构,包括List、Set、Map等,帮助开发者更方便地存储和管理数据。 为什么不推荐使用数组? 数组虽然可以用来存储数据,...

Global site tag (gtag.js) - Google Analytics