如何使用Arrays.sort()对任意类型的数据进行排序? 您所在的位置:网站首页 元组sort方法 如何使用Arrays.sort()对任意类型的数据进行排序?

如何使用Arrays.sort()对任意类型的数据进行排序?

2023-08-17 08:44| 来源: 网络整理| 查看: 265

前段时间看到一篇关于Arrays.sort()基本原理和使用的解读,正好之前自己也想总结一下关于Java中和排序相关的一些内容,不限于Arrays.sort()、ArrayList.sort()以及Comparator和Comparable接口。在本文中将介绍Arrays中各种重载的sort(),以及解释如何使用Arrays.sort()对任意类型的数据进行排序,这其中又涉及到Comparable接口和Comparator类的相关内容,最后在对比看一下ArrayList中的sort()。

文章目录 1. 引入2. Arrays.sort()3. 自定义类型使用集合类中的sort()4. ArrayList.sort()5. 总结6. 完整测试代码

1. 引入

如果现在有一个包含具体类型数据元素的数组,如何对数组中的元素进行排序呢?当然我们需要根据不同的数据类型确定具体的排序规则,如果是int型等数值类型,那么可以根据元素的大小进行排序;如果是String类型的数据,我们可以根据字典序进行排序;如果是自定义类型的数据,我们可以根据类中不同类型的成员变量进行排序,如根据int型的age或是String类型的name……

在确定了数据元素数据类型和排序规则的前提下,接下来就需要编写排序逻辑。如果自己手造代码,可能工作量不是很大,但能不能利用Java中已有的东西来实现排序逻辑呢?当然!下面我们就来介绍一下如何使用Arrays.sort()、ArrayList.sort()以及自定义类来实现排序。

2. Arrays.sort()

Java.utils.Arrays是Java内置的一个方便操作数组的工具类,使用其中提供的众多静态方法可以快速简便的实现有关数组的大部分要求。

浅析Java中的Arrays

根据今天讨论的主题来说,我们只关注其中各种的sort()。Arrays中提供的sort()方法如下所示: 在这里插入图片描述

从图中的方框划分可以看出,全部的sort()大致可以分为三类:

针对于基本数据类型的方法sort(xxx[] a):其中xxx表示基本的数据类型,包括byte、char、double、float、int、long和short。每个数据类型又分别有两种实现方式:

static void sort(xxx[] a)static void sort(xxx[] a, int fromIndex, int toIndex)

针对于引用类型的方法,其中的引用类型可以是String、Integer等包装类型,也可以是自定义数据类型,只不过自定义类型有进一步的要求,这个下面会说。同样有两种实现方式:

sort(Object[] a)sort(Object[] a, int fromIndex, int toIndex)

针对于泛型的方法:

static void sort(T[] a, int fromIndex, int toIndex, Comparator


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有