主要参考jdk的:
java.util
类 Collections
java.lang.Object
java.util.Collections
public static <T> void sort(List<T> list,
Comparator<? super T> c)
根据指定比较器产生的顺序对指定列表进行排序。此列表内的所有元素都必须可使用指定比较器相互比较(也就是说,对于列表中的任意 e1 和 e2 元素,c.compare(e1, e2) 不得抛出 ClassCastException)。
此排序被保证是稳定的:不会因调用 sort 而对相等的元素进行重新排序。
排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。此算法提供可保证的 n log(n) 性能。 指定列表必须是可修改的,但不必是可大小调整的。此实现将指定列表转储到一个数组中,并对数组进行排序,在重置数组中相应位置每个元素的列表上进行迭代。这避免了由于试图原地对链接列表进行排序而产生的 n2 log(n) 性能。
参数:
list
- 要排序的列表。
c
- 确定列表顺序的比较器。null 值指示应该使用元素的自然顺序。
抛出:
ClassCastException
- 如果列表中包含不可使用指定比较器相互比较 的元素。
UnsupportedOperationException
- 如果指定列表的列表迭代器不支持 set 操作。
指定排序规则对象
import java.util.Comparator;
import java.util.Map;
public class CompareSort implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
Map.Entry map1=(Map.Entry)o1;
Map.Entry map2=(Map.Entry)o2;
System.out.println(map1.getKey().toString().compareTo(map2.getKey().toString()));
return map1.getKey().toString().compareTo(map2.getKey().toString());
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapSort {
public static void main(String[] args) {
Map<String, String> map=new HashMap<String, String>();
map.put("1", "qw");
map.put("a", "sdf");
map.put("r", "qw");
map.put("g", "sdf");
map.put("b", "qw");
map.put("j", "sdf");
System.out.println(map);
//先将map转换为List类型
List list=new ArrayList(map.entrySet());
//然后再对list进行排序处理
Collections.sort(list, new CompareSort());
System.out.println(list);
}
}
分享到:
相关推荐
本文将深入探讨Java Map集合的排序方法。 一、TreeMap:自动排序 1. **TreeMap** 是一个基于红黑树实现的Map,它会自动根据键的自然顺序或自定义比较器进行排序。例如: ```java import java.util.TreeMap; ...
Map中元素存放是无序的 HashMap注意事项: 1,HashMap底层维护一个数组,我们向HashMap中所放置的对象实际上是存储在该数组当中; 2,当向HashMap中put一对键值时,它会根据key的hashCode值计算出一个位置,该位置...
### Map集合概述与特点 #### 一、Map集合的特点及概念 Map集合是Java集合框架中的重要组成部分之一,主要用于存储键值对(key-value pairs)。它与Collection接口不同,Collection接口用于存储单个对象,而Map接口...
本文将深入探讨`Map`集合的特性和遍历方式,以及`Set`特性的排序,并介绍如何使用`IO流`,特别是字节流和字符流。 首先,我们来了解`Map`集合的基本概念。`Map`接口是Java集合框架的一部分,它不直接继承自`...
Map是一种键值对的集合,它可以按照键或值进行排序。下面,我们将详细地介绍Java Map的按键排序和按值排序。 按键排序(sort by key) Java中的TreeMap,V>类可以实现Map的按键排序。TreeMap,V>是一个基于红黑树的...
Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...
【Java Map 集合类简介】 在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别...
Map是Java集合框架中的一种数据结构,用于存储键值对。然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足特定的业务需求。 对Map中的key进行排序 对Map中的key进行排序可以使用TreeMap来实现...
Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍Java中Map集合的用法。 **1. Map接口概述** Map接口位于`java.util`包下,它定义了一些基本的操作方法,如put、get、...
Java集合排序及java集合类详解(Collection、List、Map、Set).doc
然而,在某些场景下,我们可能需要将Map中的元素按照值(value)进行排序。本文将详细介绍如何在Java中实现Map按值排序的几种方法。 1. 使用TreeMap TreeMap是Java中实现Map接口的一个类,它内部使用红黑树数据结构...
在这个场景中,我们关注的是如何在Activity之间通过Intent传递一个有序且可排序的Map集合。理解这个知识点对于优化应用的数据传输流程至关重要。 首先,Map接口在Java中提供了若干实现类,如HashMap、LinkedHashMap...
List<map>,List<Map, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
Java中的Map接口是用于存储键值对的数据结构,它提供了多种实现类,每种实现类有不同的特性和排序规则。在Java中,Map的排序通常分为两种情况:一种是基于Map本身实现类的特性进行排序,如TreeMap;另一种是通过...
每种实现类都有其特点和优点,例如 `HashMap` 是最常用的 Map 实现类,`TreeMap` 是一种排序的 Map 实现类等。 Map 接口和方法 Map 接口定义了四种类型的方法,包括 `equals()`、`hashCode()`、`put()`、`remove()...
在Java集合排序方面,我们主要关注List和Map。对于List,可以使用Collections.sort()方法进行排序,这个方法默认使用元素的自然顺序,如果元素是自定义对象,需要实现Comparable接口或者提供Comparator。对于Map,...
在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(Key-Value)的数据存储方式。Map不是列表或数组,它允许通过键来查找和操作对应的值。本篇文章将详细介绍Map的基本用法和关键特性。 1. **...
### Java集合排序及java集合类详解(Collection、List、Map、Set) #### 集合框架概述 ##### 容器简介 在Java编程中,容器(Container)是指用来存储和管理对象的一种数据结构。随着应用程序复杂度的增加,简单地...
Map集合是一个非常重要的部分,它是以键值对(key-value pairs)的形式存储数据的接口。Map接口在java.util包中,并且提供了将键映射到值的对象。这些键不能重复,每个键最多映射到一个值。Map集合不是Collection的...