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

 我来答
rotoslime
2012-03-04 · TA获得超过1086个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:269万
展开全部
Arrays.sort是用的快带排序的算法。由于比较的是对象,因此比较规则必须实现Comparator接口,这个接口本身就是用于进行比较的。所以这个静态方法可以用来比较两个对象的大小。但是比较规则要重写compare方法中实现。
如规则类为ByCompare,无素类为Element,则用法如下:
Arrays.sort(Elements, new ByCompare()); //其中Elements为数组。
具体方法使用可问度娘。
390723772杨
2012-03-04 · TA获得超过132个赞
知道小有建树答主
回答量:407
采纳率:0%
帮助的人:260万
展开全部
可以,但是都是局限于相同类型的对象,arrays.sort的方法是排序的,这个方法的排序是基于数组的排序,只要是一个类型的数组都可以排序,当然泛型的也可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
synolym
2012-03-04 · TA获得超过154个赞
知道答主
回答量:57
采纳率:0%
帮助的人:81.4万
展开全部
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
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qrqhuang
2012-03-04 · TA获得超过1176个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:203万
展开全部
import java.util.Arrays;
class A implements Comparable<A>
{
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);
}
}
}

如楼上所说 这是我自己写得一个示例代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有响应m2
2012-03-04 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3611万
展开全部
如果想让Arrays.sort()给除了基本类型的数据来排序的话 要排序的对象必须实现Comparable接口才能排序 排序的规则是按照Comparable里的compareTo方法定义的当然compareTo是需要你自己去写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式