Arrays.sort是用的快带排序的算法。由于比较的是对象,因此比较规则必须实现Comparator接口,这个接口本身就是用于进行比较的。所以这个静态方法可以用来比较两个对象的大小。但是比较规则要重写compare方法中实现。
如规则类为ByCompare,无素类为Element,则用法如下:
Arrays.sort(Elements, new ByCompare()); //其中Elements为数组。
具体方法使用可问度娘。
可以,但是都是局限于相同类型的对象,arrays.sort的方法是排序的,这个方法的排序是基于数组的排序,只要是一个类型的数组都可以排序,当然泛型的也可以。
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
}
}
import java.util.Arrays;
class A implements Comparable
{
String a;
public A(String a)
{
this.a = a;
}
public int compareTo(A o)
{
int i = this.a.length() - o.a.length();
if(i!=0)
return i;
return this.a.compareTo(o.a); //因为this.a是String 类型 已经实现Comparable接口 故可调用
}
}
public class Test3
{
public static void main(String[] args)
{
A[] a = {new A("bb"),new A("aa"),new A("abcd")};
Arrays.sort(a);
for(A i:a)
{
System.out.println(i.a);
}
}
}
如楼上所说 这是我自己写得一个示例代码
如果想让Arrays.sort()给除了基本类型的数据来排序的话 要排序的对象必须实现Comparable接口才能排序 排序的规则是按照Comparable里的compareTo方法定义的当然compareTo是需要你自己去写的