在java中Arrays.sort是用来排序的,但是他可不可以用来比较两个对象的大小。怎么用Arrays.sort

2024-12-19 01:10:16
推荐回答(5个)
回答1:

Arrays.sort是用的快带排序的算法。由于比较的是对象,因此比较规则必须实现Comparator接口,这个接口本身就是用于进行比较的。所以这个静态方法可以用来比较两个对象的大小。但是比较规则要重写compare方法中实现。
如规则类为ByCompare,无素类为Element,则用法如下:
Arrays.sort(Elements, new ByCompare()); //其中Elements为数组。
具体方法使用可问度娘。

回答2:

可以,但是都是局限于相同类型的对象,arrays.sort的方法是排序的,这个方法的排序是基于数组的排序,只要是一个类型的数组都可以排序,当然泛型的也可以。

回答3:

import java.util.Arrays;

public class Test {

public static void main(String[] args) {
int[] array = new int[20];
// 随机初始化一个20个元素的数组
for (int i = 0; i < array.length; i++) {
array[i] = (int) (Math.random() * 100);
}
// 打印数组的值
System.out.println(Arrays.toString(array));
// 排序
Arrays.sort(array);
// 打印数组排序后的的值
System.out.println(Arrays.toString(array));

// 以上是对基本类型的操作,及排序的用法。如果要比较大小,基本类型直接用大于> 小于< 等于=就行了。
// 这里再给你演示一下,对象类型的操作,同样的,用Integer
Integer[] arrayInt = new Integer[20];
// 随机初始化一个20个元素的数组
for (int i = 0; i < arrayInt.length; i++) {
arrayInt[i] = (int) (Math.random() * 100);
}
// 打印数组的值
System.out.println(Arrays.toString(array));
// 排序
Arrays.sort(array);
// 打印数组排序后的的值
System.out.println(Arrays.toString(array));
// 对于对象类型,要比较大小,需要继承
// java.lang.Comparable接口,实现compareTo方法,Integer是已经实现了的,要比较大小可以如下;
Integer a = new Integer(10);
Integer b = new Integer(20);
System.out.println("a和b的比较结果为:" + a.compareTo(b) + ",小于0,说明a小于b"); // a.compareTo(b)如果返回小于0,则表示a小于b,如果=0,则表示两者相等,如果大于0,则表示a大于b
}
}

回答5:

如果想让Arrays.sort()给除了基本类型的数据来排序的话 要排序的对象必须实现Comparable接口才能排序 排序的规则是按照Comparable里的compareTo方法定义的当然compareTo是需要你自己去写的