首页 > 编程知识 正文

java应用基础教程,java序列化

时间:2023-05-05 03:34:03 阅读:153758 作者:2613

java中对Comparable的描述介绍了Comparable是一种排序接口。 如果类实现了Comparable接口,则表示“该类支持排序”。 可以使用Arrays.sort ()对类进行排序

说明1.Comparable接口的使用场景:假设我们有这样的需求,需要设计一个Person类,有名字(name )、年龄)两个属性,是按年龄排序的

代码:

classpersonimplementscomparableperson { intage; 字符串名称; PublicPerson(stringname,int age ) { this.name=name; this.age=age; } @ overridepublicstringtostring ((/todo auto-generatedmethodstubreturn )姓名:' name ),'年龄:' age )。 } @ overridepublicintcompareto (persono )/todo auto-generatedmethodstubif ) this.ageo.age ) { return 1; }elseif(this.ageo.age ) { return -1; //当然,也可以以这种方式实现//return integer.com pare (this.age,o.age )。 返回0; }测试:

publicstaticvoidmain (string (args ) person ) persons=new Person ) (newperson('ylddn ',15 ),newperson ) )失眠症arrs system.out.println (arrays.tostring ) Persons ); system.out.println (persons [0]==persons [1] ); system.out.println (persons [0].equals ) Persons[1] ); }结果:

[姓名:zxdhlg,年龄:10;姓名:ylddn,年龄:15;名称:失眠灰狼,年龄:15;名字:帅饼干,年龄:45; ]falsefalse详细信息:

ComparableT接口中有通用的t,t的选择是可以与之比较的对象类型,一般是安装其接口类本身。 能够像这样与Person类进行比较的当然是Person本身。 ComparableT只是在Arrays中起作用,其他地方目前此接口不太起作用,包括运算符和equals。 2.Comparator接口Comparator也是比较器,但它是一种救生设计,一般尽量减少。

使用场景:假设有这样的需求,就需要对人员类的年龄进行排序。 Person类有两个属性:名称(name )、年龄(age ),但Person类是别人写的,没有Comparable接口。 如果不允许修改源代码,则可以使用comparatate

代码:

//他人定义的源代码class Person { int age; 字符串名称; PublicPerson(stringname,int age ) { this.name=name; this.age=age; }publicvoidsetage(intage ) { this.age=age; }publicvoidsetname(stringname ) { this.name=name; } public int getAge () { return age; } public String getName () { return name; } @ overridepublicstringtostring ((/todo auto-generatedmethodstubreturn )姓名:' name ),'年龄:' age )。 } classpersoncomparatorimplementscomparatorperson { @ overridepublicintcompare (perso no1,Person o2 ) )//todoauto-generato

publicstaticvoidmain (string (args ) person ) persons=new Person ) (newperson('ylddn ',15 ),newperson ) )失眠症arrs system.out.println (arrays.tostring ) Persons ); }结果:

[姓名:zxdhlg,年龄:10;姓名:ylddn,年龄:15;名称:失眠灰狼,年龄:15;名字:帅饼干,年龄:45; ]

注意详细情况:

ComparatorT、通用t是比较器可以比较的对象类型,这里总结了Person的Comparable和Comparator的区别。

java.lang.Comparable :在定义类时可以实现良好的界面。 其中需要实现compareTo这个方法。 java.util.Comparator:是拯救性比较接口,需要单独定义包含compare比较方法的比较类。 在更多的情况下,我们经常使用Comparable接口,在实际开发过程中,实际上很少使用这两种接口。

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