今天同事遇到一个问题,需要在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 的区别 Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最...
在Java中,map可以存放数组,并且可以通过不同的方法来取出值。本文将详细介绍Java map存放数组并取出值的代码详解。 一、使用map.keySet()方法 map.keySet()方法可以获取map中的所有key的集合,然后可以通过key来...
此外,`equals(Object o)`和`hashCode()`方法用于比较Map对象的等价性和计算哈希值,这对于实现Map的比较和存放在哈希表中至关重要。 Map接口还有个内部类`Map.Entry`,它代表Map中的一个键值对。通过`Map.entrySet...
if(map->maplist[j].id==0&&tag[j]==0)//下一条边节点入度减一,并判断之后入度是否为零且未被访问过 { queue[++real]=j;//让每一个未被访问到的且入度为0的节点进栈 tag[j]=1;//进栈…… } p=p...
本篇将详细探讨如何针对`ListView`中的数据进行排序,并深入理解其中涉及的技术细节。 #### 一、基本概念与应用场景 **ListView简介:** `ListView`是一种用于展示大量数据的UI组件,它能够根据当前屏幕大小自动...
本资源摘要信息涵盖了 Java 中的集合框架,包括 TreeSet、List、Set、Map 等集合类的使用和特性。同时,涵盖了 Lambda 表达式、Stream 接口、 Iterator 等概念。 1. 在创建 TreeSet 对象时,可以传入自定义比较器,...
ps:要想往集合中存放基本数据类型,必须转换为对应的包装类 Collection -- 集合接口 List -- List接口(添加了许多针对下标操作的方法) 特点:有序的,且可重复 ArrayList: 数据结构:一维数组 ...
- 选择排序则是每次从未排序序列中选出最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续这个过程。 - 插入排序的工作方式像是玩扑克牌时整理牌的动作,每找到一个元素就将它插入到...
Java的`Collections.sort()`方法可以用于对Map的键进行排序,然后遍历输出。 ```java List<Map.Entry, Integer>> sortedEntries = new ArrayList(wordCount.entrySet()); sortedEntries.sort(Map.Entry., Integer>...
Map中的键需实现Comparable接口以进行排序,或者提供自定义的Comparator。 理解并熟练运用Java集合框架的关键在于掌握每个接口和类的特点,以及它们之间的关系。知道何时选择ArrayList而不是LinkedList,何时使用...
集合的主要分类有List、Set、Map等。 List集合是一种有序列表,允许存放重复的元素。List集合的主要实现类有ArrayList、LinkedList、Vector等。ArrayList是数组实现的,查询快,增删慢,线程不安全,轻量级。...
使用`List`集合(如`ArrayList`)来存储多个`Student`对象也是常见的做法,特别是在需要对数据进行排序或者有多条记录的情况下。但在这个实验中,直接使用Map存储,更便于通过学号快速查找学生信息。 总之,这个...
2. **选择排序(Selection Sort)**:选择排序每次从未排序的序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。...
Checked集合确保集合中只能存放特定类型的元素。这在使用原始类型时尤其有用,因为Java的泛型系统在编译时能够检查类型安全,而原始类型则不能。`Collections`提供了以下方法来创建类型检查集合: - `Collections....
4. 当整个 map task 结束后再对磁盘中这个 map task 产生的所有临时文件做合并,生成最终的正式输出文件,然后等待 reduce task 来拉数据。 在 reduce 端的情况下,整个流程可以分为三步: 1. Reduce task 从多个 ...
4. 当整个map task结束后,再对磁盘中这个map task产生的所有临时文件做合并,生成最终的正式输出文件,然后等待reduce task来拉数据。 reduce端的Shuffle过程: 1. reduce task需要从map task拉取数据,拉取的...
5. List 主要特征是其元素以线型方式存储,集合中可以存放重复的对象。正确 List 集合的主要特征是其元素以线型方式存储,集合中可以存放重复的对象。 6. 泛型类的构造方法仍然和普通类的构造方法形式是一样的,不...
2. Set(无序、不能重复)Set 里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。 3. Map(键值对、键唯一、值不唯一)Map 集合中存储的是键值对,键不能重复,值可以...
Collections Framework是Java语言中一个基础的数据结构.framework,它提供了多种类型的数据结构,包括List、Set、Map等,帮助开发者更方便地存储和管理数据。 为什么不推荐使用数组? 数组虽然可以用来存储数据,...