首页 > 编程知识 正文

java序列化,java sort方法

时间:2023-05-04 04:39:32 阅读:153754 作者:2837

另一方面,概要Comparable和Comparator都用于实现集合中元素的比较、排序。 Comparable是在集合中定义的方法实现的排序,位于java.lang下。 Comparator是在集合外部实现的排序,位于java.util下。 Comparable是一种接口,对象本身已经支持自我比较所需的实现,如String和Integer,用于完成大小比较操作。 也可以实现Comparable接口,以便在将自定义类添加到list容器后对其进行排序。 按Collections类的sort方法排序时,如果不指定Comparator,则会按自然顺序排序。 自然顺序是指实现Comparable接口设置的排序方式。

Comparator是一个专用比较器,如果此对象不支持自比较,或者自比较函数不符合要求,则可以编写比较器来比较两个对象之间的大小。 Comparator展示了一种策略模型(strategy design pattern ),它在一个策略对象(strategy object )中更改对象本身的行为,而不是更改对象本身。 总之,Comparable是自己完成比较,Comparator是外接程序的实现比较。

上述部分转载于http://www.void cn.com/article/p-wotrtoif-uq.html。 在这个博客上,关于Comparable和Comparator的区别,我觉得文字部分的描写很详细很清晰,所以不敢复印。 关于Comparator,以下例子是我自己写的,如果有错误的地方请再指出来。

二.实例

Comparable的用法:

包测试;

publicclassstudentimplementscomparable {

//学生姓名

私有字符串名称;

//学生的年龄

私有输入;

公共字符串获取名称

return name;

}

公共void set name (string name ) {

this.name=name;

}

公共获取页面() {

返回age;

}

公共语音设置(intage ) {

this.age=age;

}

@Override

公共公司到(studento ) {

if(this.ageo.getage () ) ) ) ) ) )。

返回1; //从低到高

}else {

返回- 1;

}

//return 0;

}

}

测试类:

包测试;

公共类测试1 {

publicstaticvoidmain (string [ ] args ) {

Student s=new Student (;

s.setage(12;

s.setname (三);

Student s1=new Student (;

S1.setage(15;

s1.setName ()精明的母鸡;

s.comPareto(S1;

Student [] stuarray={s,s1};

Java.util.Arrays.sort(stuArray );

students tu : stu阵列(for ) {

system.out.println(stu.getname (),' stu.getAge ) );

}

}

}

计算机的使用方法:

包测试;

公共类student1{

私有字符串名称;

私有输入;

公共student1(string name,int age ) {

this.name=name;

this.age=age;

}

公共字符串获取名称

return name;

}

公共void set name (string name ) {

this.name=name;

}

公共获取页面() {

返回age;

}

公共语音设置(intage ) {

this.age=age;

}

}

包测试;

import java.util.Comparator;

公共类student 1计算机辅助计算机{

@Override

publicintcompare(student1O1,Student1 o2 ) {

if(O1.getname ().com Pareto (O2.getname ) )0) {

返回1;

}else{

if(O1.getage () o2.getAge ) ) }

返回1; //从低到高

}else{

返回- 1;

}

//return -1;

}

/*if(O1.getage () o2.getAge ) ) ) )。

返回1; //从低到高

}else{

返回- 1;

) /

}

}

测试类:

包测试;

公共类测试1 {

publicstaticvoidmain (string [ ] args ) {

sudent1[ ] stu1={ newstudent1(PGD dhn ),26 )、newstudent1(,15 )、newstudent1),18 )和new student1) )。

sudent1comparatorsc=new student1comparator (;

Java.util.Arrays.sort(stu1,sc );

for(student1o:stu1) {

system.out.println(O3.getname (),' o3.getAge ) );

}

}

}

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