首页 > 编程知识 正文

comparable java,java序列化

时间:2023-05-04 17:04:07 阅读:153749 作者:3380

一.介绍

java的接口comparable需要经常访问,例如对集合和数组进行排序。 有两种方法可以应用于Arrays.sort (或Collections.sort .如果集合中的对象是自定义对象,则为自定义对象集合)数组)。 介绍Comparable的使用方法。

二. java库提供的对象排序

List中Integer对象的排序如下所示

公共类主类{

publicstaticvoidmain (string [ ] args ) {

List list=new ArrayList (;

Random rd=new Random (;

for(intI=0; i10; I )

list.add(rd.nextint ) 100 );

for (inti :列表) ) )。

system.out.print(I ' );

collections.sort(list;

System.out.println (' ' );

for (inti :列表) ) )。

system.out.print(I ' );

}

}

这很简单。 结果如下。

从Integer的源代码中,可以看到Integer类继承了Comparable接口

然后重写了compareTo。 这也是Comparable唯一的方法。

三.自定义对象排序

要定制对象,必须继承Comparable接口并重写compareTo方法。 在此,列举比较学生成绩的Student类,如下所示。

classstudentimplementscomparable {

int sno;

int score;

sudent(intSnO,int score ) {

this.sno=sno;

this.score=score;

}

@Override

公共公司到(studento ) {

if(this.Score

Elseif(this.Scoreo.Score ) return 1;

else return 0;

}

}

设本对象为a,比较对象为b,用于比较的属性为x。 在compareTo方法中,勤奋的样子返回1,同样返回0。 在这里,如果a.compareto(b )==0,为了保证一致性,希望a.equals )也为真),但这不是强制的),但是根据情况决定是否改写equals是可能的

执行结果如下

如果Comparable接口没有继承上例中的Student,程序将报告错误,编译将失败。 必须注意的是,只有继承Comparable接口并重写compareTo方法时,此类才会被视为Compareable类。 如果值中写有compareTo方法,则implement Comparable只是一个普通类

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。