迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

JavaScript POST

发布时间:2024/03/23 浏览次数:96 分类:JavaScript

本教程讲解如何在不使用 JavaScript 表单的情况下发送 POST 数据。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便