Map排序的两种方式:
public static EnumMap<DataBaseType,Object> mapSort(EnumMap<DataBaseType,Object> temp){
Set<Entry<DataBaseType,Object>> set = temp.entrySet();
Map.Entry<DataBaseType,Object>[] entries = (Entry<DataBaseType, Object>[]) set.toArray();
Arrays.sort(entries, new Comparator<Map.Entry<DataBaseType,Object>>() {
@Override
public int compare(Entry<DataBaseType, Object> o1,
Entry<DataBaseType, Object> o2) {
Long key1 = Long.valueOf(((Map.Entry<DataBaseType,Object>) o1).getValue().toString());
Long key2 = Long.valueOf(((Map.Entry<DataBaseType,Object>) o2).getValue().toString());
return key1.compareTo(key2);
}
});
List<Map.Entry<DataBaseType,Object>> infos = new ArrayList<Map.Entry<DataBaseType,Object>>(
temp.entrySet());
Collections.sort(infos, new Comparator<Map.Entry<DataBaseType,Object>>() {
@Override
public int compare(Entry<DataBaseType, Object> o1,
Entry<DataBaseType, Object> o2) {
return (Integer)o1.getValue()-(Integer)o2.getValue();
}
});
return temp;
}
分享到:
相关推荐
Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会记录插入顺序,也不保证顺序。如果需要有序的Map,可以使用TreeMap,它会根据键的自然顺序进行...
摘要:本文主要介绍了 Map 按 key 和 value 分别排序的方法,包括使用 TreeMap 的 key 排序和 value 排序两种方式。 Map 按 key 排序 Map 是键值对的集合接口,它的实现类主要包括 HashMap、TreeMap、Hashtable 及...
而“工具”标签可能意味着博主还介绍了某些可以帮助处理Map排序的第三方库或实用工具。 在1.txt文件中,如果包含的是上述知识点的示例代码或进一步的解释,读者可以通过阅读文件内容来加深理解。总的来说,理解和...
为此,本文将详细介绍两种实现Map排序的方法:按照值降序排序和按照值升序排序。 #### 按照值降序排序Map 首先,我们来看一个按照Map中的值进行降序排序的例子。这个例子中使用的Map类型是`, V>`,其中`V`实现了`...
首先,我们要了解Map的两种主要实现类:HashMap和TreeMap。HashMap是非排序的,而TreeMap是基于红黑树数据结构,会自动按键的自然顺序进行排序。如果键是自定义对象,那么需要该对象的类实现Comparable接口或者在...
- Sort-Merge:这是一种基于MapReduce的简单排序方法,通过Map阶段的局部排序和Reduce阶段的全局归并实现全数据集的排序。 - Bucket Sort:在Map阶段,数据根据预设的桶边界划分,每个节点负责一个或多个桶的排序。...
当需要对Map中的数据进行排序时,通常有两种情况:按key排序和按value排序。本文将详细介绍如何在Android环境下对Map进行这两种排序。 首先,我们来讨论按key排序。TreeMap是一个基于红黑树实现的Map,它可以根据...
Comparator接口有一个`compare(T o1, T o2)`方法,我们需重写此方法,使得比较两个Value时能按我们的需求排序。 - 示例代码: ```java Comparator<Map.Entry, Integer>> valueComparator = new Comparator<Map....
在C++编程中,`std::map`和`std::unordered_map`是两种常见的关联容器,它们都用于存储键值对,但实现机制和性能特点有所不同。本篇文章将深入探讨这两种容器在插入、遍历和查找操作上的差异,并通过实例分析它们...
通常有两种主要的方法来实现这一目标: 方法一:使用自定义比较器(Comparator) 这种方法涉及到创建一个新的类,这个类继承自Comparable接口或使用Comparator接口,以便我们可以自定义比较规则。在这个例子中,...
一种常见做法是先将Map的entrySet转换为List,然后使用`Collections.sort()`方法,传入一个Comparator来按value排序。 - 下面的示例展示了如何实现value排序: ```java List<Map.Entry, String>> list = new ...
在Java中,Map的排序通常分为两种情况:一种是基于Map本身实现类的特性进行排序,如TreeMap;另一种是通过自定义比较器或额外操作进行排序,例如使用Collections.sort()方法。 一、Map接口及其常见实现类 1. ...
Map和Set作为C++ STL(Standard Template Library)中两种重要的关联容器,它们的设计理念和应用领域各有侧重,但两者之间存在着许多共性和区别。理解这两种容器的特点对于高效编程至关重要。 #### 二、基本概念 -...
在JavaScript中,Array和Map是两种非常重要的数据结构,它们各有各的特点和应用场景。这篇文章将深入探讨这两个概念,以及如何在实际开发中使用它们。 首先,Array是JavaScript中最基础的数据结构之一,它允许我们...
总的来说,Java中对Map的Key进行排序通常有两种方式:一是使用支持排序的Map实现类如TreeMap,二是将HashMap的Key集合转换为List或TreeSet,然后进行排序。通过这种方式,我们可以灵活地根据需求调整Map中元素的顺序...
Java 容器的两种基本类型:Collection 和 Map Collection 和 Map 是 Java 中的两种基本容器类型,它们都可以用来存储和管理对象,但它们有着不同的特点和用途。 Collection 是一种聚集对象的容器,每个位置只能...
如果关键字是自定义的结构体,有两种排序方式: - **重载符号(Overloading Operators)**: 通过重载`或`>`运算符,让编译器知道如何比较两个结构体实例。 - **比较函数对象(Comparator Function Object)**: ...
总的来说,Java中的Map映射机制为存储和检索键值对提供了一种灵活且高效的方式,其各种实现和方法提供了丰富的功能以适应不同的编程需求。理解和掌握Map接口及其常用实现对于编写高效、健壮的Java代码至关重要。
遍历`Map`集合主要有三种方式: 1. **迭代器(Iterator)**:通过`Map`的`entrySet()`方法获取键值对的`Set`视图,然后使用迭代器遍历。 2. **foreach循环**:利用Java的增强for循环,同样通过`entrySet()`来遍历。 3....
Map是Java中最天才的设计,使用起来也很灵活,该类总结了Map通过key和value进行升序和降序排序,Map的两种遍历的公共方法以及上面功能的测试方法