How to Sort String Array in Java

10 Sept 2024 | 4 分钟阅读

在编程中,排序很重要,因为它将数组中的元素按特定顺序排列。最常用的顺序是字母顺序自然顺序。排序用于规范化(将数据转换为标准形式的过程)数据并生成人类可读的格式。在本节中,我们将学习如何使用用户自定义逻辑Arrays.sort() 方法在 Java 中排序字符串数组

在 Java 中排序字符串数组有两种方法

  • 使用用户自定义逻辑
  • 使用Arrays.sort() 方法

使用用户自定义逻辑

我们可以通过将每个元素与其余元素进行比较来排序字符串数组。在下面的示例中,我们做了同样的事情。我们使用了两个 for 循环。内部(第二个)for 循环避免了比较中的重复。如果条件(countries[i].compareTo(countries[j])>0)为真(大于 0),则会执行交换并排序数组。

SortStringArrayExample1.java

输出

[ Australia, America, Denmark, France, Germany, India, Italy, Netherlands, South-Africa, Yugoslavia, Zimbabwe]

使用 Arrays.sort() 方法

在 Java 中,Arrays 是 java.util 包中定义的类,它提供 sort() 方法来按升序对数组进行排序。它使用双枢轴快速排序算法进行排序。其复杂度为O(n log(n))。它是一个静态方法,接受一个数组作为参数,并且不返回任何内容。我们可以直接通过类名调用它。它接受 int、float、double、long、char、byte 类型的数组。

语法

其中 a 是要排序的数组。

注意:与 Arrays 类一样,Collections 类也提供 sort() 方法来排序数组。但它们之间存在差异。Arrays 类的 sort() 方法适用于原始类型,而 Collections 类的 sort() 方法适用于对象集合,如 LinkedList、ArrayList 等。

我们可以通过以下方式执行排序

  • 升序字母顺序自然顺序
  • 降序反向自然顺序

按升序或字母顺序排序字符串数组

升序是将元素从最低到最高排列。它也称为自然顺序字母顺序

让我们使用 Arrays 类的 sort() 方法对数组进行排序。

SortStringArrayExample2.java

输出

[Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple]

按降序或反向自然顺序排序字符串数组

使用 reverseOrder() 方法

Java Collections 类提供 reverseOrder() 方法来按反向字典顺序对数组进行排序。它是一个静态方法,因此我们可以直接通过类名调用它。它不接受任何参数。它返回一个比较器,该比较器强制执行自然排序(升序)的相反顺序。

这意味着数组首先使用 sort() 方法按升序排序,然后 reverseOrder() 方法反转自然排序,从而得到降序排序的数组。

语法

假设 a[] 是一个要按降序排序的数组。我们将按以下方式使用 reverseOrder() 方法

让我们按降序对字符串数组进行排序。

SortStringArrayExample3.java

输出

[Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]

下一个主题Java 教程