Java Arrays.sort比较类
时间: 2023-07-28 11:25:06 浏览: 117
Java中的Arrays.sort()方法可以对数组进行排序,但需要指定比较方式。为了实现比较,需要定义一个比较类,该类需要实现java.util.Comparator接口。
Comparator接口有一个方法:
```java
int compare(T obj1, T obj2)
```
该方法用于比较两个对象obj1和obj2。如果obj1小于obj2,则返回负数;如果obj1等于obj2,则返回0;如果obj1大于obj2,则返回正数。
比较类可以按照需要定义具体的比较规则,比如按照字符串长度、按照数字大小等等。
以下是一个示例比较类,用于按照字符串长度进行排序:
```java
import java.util.Comparator;
public class StrLenComparator implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
}
```
使用该比较类进行排序:
```java
String[] arr = {"apple", "orange", "banana", "pear"};
Arrays.sort(arr, new StrLenComparator());
```
该代码将按照字符串长度进行排序,输出结果为:
```
pear
apple
orange
banana
```
相关问题
java arrays.sort
Java中的Arrays类提供了一个sort()方法,用于对数组进行排序。该方法使用快速排序算法来实现排序。
以下是使用Arrays.sort()方法对数组进行排序的示例代码:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = {5, 2, 8, 1, 9};
// 使用Arrays.sort()方法对数组进行排序
Arrays.sort(arr);
// 打印排序后的数组
System.out.println(Arrays.toString(arr));
}
}
```
输出结果为:[1, 2, 5, 8, 9]
java Arrays.sort
在Java中,Arrays类提供了用于对数组进行排序的sort()方法。根据提供的引用内容,有两种sort()方法的用法[^1][^2]:
1. `Arrays.sort(int[] a)`:这个方法用于对整个数组进行排序。它使用了Dual-Pivot Quicksort算法来实现排序。以下是这个方法的源码:
```java
public static void sort(int[] a) {
DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);
}
```
这个方法会对数组a进行原地排序,即直接修改原数组的元素顺序。
2. `Arrays.sort(int[] a, int fromIndex, int toIndex)`:这个方法用于对数组的指定范围进行排序。它首先会进行边界值合规检查,然后调用4参数的`java.util.DualPivotQuicksort.sort()`方法来实现排序。以下是这个方法的源码:
```java
public static void sort(int[] a, int fromIndex, int toIndex) {
rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, 0, fromIndex, toIndex);
}
```
这个方法会对数组a中从索引fromIndex到toIndex的元素进行排序,包括fromIndex,但不包括toIndex。
需要注意的是,这两个方法都是对原始类型int的数组进行排序,如果要对其他类型的数组进行排序,可以使用相应的重载方法。
阅读全文