迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

如何在 Java 中对数组进行排序? 升序和降序

作者:迹忆客 最近更新:2023/02/04 浏览次数:

作为一名 Java 程序员,我们经常需要在 Java 中对数组进行排序,幸运的是 java.util.Arrays 类提供了几种实用方法来在 Java 中对数组进行排序。 我们可以在 Java 中对不同类型的数组进行排序,例如原始数据类型数组、对象或 int、String 等。数组位于 java.util 包中,并将所有与排序相关的方法公开为静态实用程序函数。 我们可以访问 sort() 作为 Arrays.sort() 并传递我们的数组,如果该类实现了 Comparable 接口,它将通过按照 compareTo() 方法中实现的顺序比较它们来对该数组对象进行排序。 我们可以按升序、降序或 Java 中自定义比较器定义的任何自定义顺序对数组进行排序。

在上一篇文章中,我们了解了如何在 Java 中对 ArrayList 进行排序,在这篇 Java 文章中,我们将看到在 Java 中按升序、降序对数组进行排序和对子数组进行排序的示例。

顺便说一句,基本数据结构的基础知识也非常重要。


如何按升序和降序对Java中的数组进行排序?

现在,让我们看几个按升序或升序对 Java 数组进行排序的示例:

将 Java 数组排序为升序:

为了按升序对数组(String、int 或任何类型)进行排序,我们不需要任何特殊的东西。 Arrays.sort() 方法默认按 CompareTo 方法实现的自然顺序对元素进行排序。 Java中的字符串数组会按照字典顺序排序。

整数将按数字升序排序。 查看代码部分以获取有关如何将 java 数组排序为升序的完整示例。 我们也可以通过此方法在 Java 中对匿名数组进行排序,但由于我们没有任何名称可以引用,因此它没有多大意义。

1. 将 Java 数组降序排列:

为了将 java 数组按降序排序,我们需要在 Java 中提供一个外部比较器,它可以按相反的顺序对元素进行排序,幸运的是我们将其内置为 java.util.Collections.reverseOrder(),它返回一个 逆序比较器,给出元素对象的自然顺序的逆序。

我们可以将此反向比较器传递给 sort 方法,它会将数组按降序排序,如上一节的代码示例所示。

还有另一种方法可以将 Array 转换为 ArrayList,然后对 ArrayList 进行排序,但这又是一个两步过程,因此最好使用 Arrays.sort() 方法对数组进行排序

Java 中对数组进行排序

2. 在 Java 中对 Saub 数组进行排序

Arrays 类还提供了对 java 数组或子数组的一部分进行排序的方法。 因此,如果我们有一个大数组并且我们只需要对特定部分进行排序,那么只需将开始索引和结束索引提供给 java.util.Arrays.sort(array,index,index) 它只会对数组进行排序 。

这比对整个数组进行排序然后从中获取一系列值要快得多。 下面是在 Java 中对数组的一部分进行排序的代码示例:

3. Java 数组排序代码示例

在这部分代码示例中,我们将看到如何在 Java 中对 Java 数组进行升序、降序排序以及对子数组进行排序:

import java.util.Arrays;
import java.util.Collections;

public class HashtableDemo {

    public static void main(String args[]) {
        String[] companies = { "Google", "Apple", "Jiyik" };

        // 按升序对java数组进行排序
        System.out.println("Sorting String Array in Ascending order in Java Example");
        System.out.println("Unsorted String Array in Java: ");
        printNumbers(companies);
        Arrays.sort(companies);
        System.out.println("Sorted String Array in ascending order : ");
        printNumbers(companies);

        // 按降序对java数组进行排序
        System.out.println("Sorting Array in Descending order in Java Example");
        System.out.println("Unsorted int Array in Java: ");
        printNumbers(companies);
        Arrays.sort(companies, Collections.reverseOrder());
        System.out.println("Sorted int Array in descending order : ");
        printNumbers(companies);

        System.out.println("Sorting part of array in java:");
        int[] numbers = { 1, 3, 2, 5, 4 };
        Arrays.sort(numbers, 0, 3);
        System.out.println("Sorted sub array in Java: ");
        for (int num : numbers) {
            System.out.println(num);
        }

    }

    public static void printNumbers(String[] companies) {
        for (String company : companies) {
            System.out.println(company);
        }
    }

}

以上代码执行结果如下

Sorting String Array in Ascending order in Java Example
Unsorted String Array in Java: 
Google
Apple
Jiyik
Sorted String Array in ascending order : 
Apple
Google
Jiyik
Sorting Array in Descending order in Java Example
Unsorted int Array in Java: 
Apple
Google
Jiyik
Sorted int Array in descending order : 
Jiyik
Google
Apple
Sorting part of array in java:
Sorted sub array in Java: 
1
2
3
5
4

关于 Arrays 的 Sort 方法的要点:

如何在 java 升序降序示例中对数组进行排序这里是关于 Arrays 类的排序方法的一些重要且值得注意的点,以供快速参考:

  1. Arrays.sort() 是一个重载方法,可以对 intbyteshortcharobject[] 数组进行排序。
  2. Arrays.sort() 还允许我们在 Java 中对子数组或数组的一部分进行排序。
  3. Arrays 类还包含用于对数组执行搜索的实用方法,如 binarySearch

以上就是Java数组升序降序排序和Java数组的部分内容。 我们也可以通过将数组转换为 ArrayList 然后进行排序来使用解决方法,但我认为 Arrays.sort() 是在 Java 中对数组进行排序的首选方法。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中获取文件大小

发布时间:2023/05/01 浏览次数:139 分类:Java

Java 提供了不同的方法来获取文件的字节大小。 本教程演示了在 Java 中获取文件大小的不同方法。使用 Java IO 的文件类获取文件大小 Java IO 包的 File 类提供了以字节为单位获取文件大小的功能。

Java 中的文件分隔符

发布时间:2023/05/01 浏览次数:108 分类:Java

本篇文章介绍了 Java 中的文件分隔符。Java 中的文件分隔符 文件分隔符是用来分隔目录的字符; 例如,Unix 使用 /,Windows 使用 \ 作为文件分隔符。

Java 中的文件过滤器

发布时间:2023/05/01 浏览次数:193 分类:Java

本篇文章介绍如何在 Java 中使用 FileFilter。FileFilter 用于过滤具有特定扩展名的文件。 Java内置包IO和Apache Commons IO为FileFilter提供了类和接口来进行文件过滤操作。

Java 获取 ISO 8601 格式的当前时间戳

发布时间:2023/05/01 浏览次数:132 分类:Java

本篇文章介绍了 ISO 8601 日期格式、其重要性及其在 Java 中的使用。 它还列出了一些优点来强调为什么应该使用 ISO 格式来表示日期。

在 Java 中获取数组的子集

发布时间:2023/05/01 浏览次数:142 分类:Java

本篇文章介绍了几种在 Java 中获取数组子集的方法。使用 Arrays.copyOf() 方法获取数组的子集 使用 Arrays.copyOfRange() 方法获取数组的子集

用 Java 填充二维数组

发布时间:2023/05/01 浏览次数:110 分类:Java

二维数组是基于表结构的,即行和列,填充二维数组不能通过简单的添加到数组操作来完成。 本篇文章介绍如何在 Java 中填充二维数组。

Java 中的自然排序

发布时间:2023/05/01 浏览次数:132 分类:Java

Java 中最常用的顺序是自然顺序。 本文将展示如何使用 naturalOrder() 函数对数组进行排序。

计算 Java 数组中的重复元素

发布时间:2023/05/01 浏览次数:202 分类:Java

本篇文章介绍Java计算数组中重复元素的方法。计算 Java 数组中的重复元素。我们可以创建一个程序来计算数组中的重复元素。 该数组可以是未排序的,也可以是已排序的。

Java 中 List 和 Arraylist 的区别

发布时间:2023/05/01 浏览次数:90 分类:Java

表示为单个单元的一组单个对象称为集合。 在 Java 中,Collection 是一个具有多个已定义接口和类的框架,用于将一组对象表示为一个单元。 它允许我们操纵

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便