java中如何实现对类的对象进行排序
我们需要对类按照类中的某一个属性(或者多个属性)来对类的对象进行排序,有两种方法可以实现,一种方法是类实现Comparable
先创建一个简单的学生类:
publicclassStudent{ privateStringname; privateintage; publicStudent(){} publicStudent(Stringname,intage){ this.name=name; this.age=age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } }
1、通过类实现Comparable
publicclassStudentimplementsComparable{ privateStringname; privateintage; publicStudent(){} publicStudent(Stringname,intage){ this.name=name; this.age=age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } /** *将对象按姓名字典序升序排序 *@paramo *@return */ @Override publicintcompareTo(Studento){ returnthis.name.compareTo(o.getName()); } @Override publicStringtoString(){ return"Student{"+ "name='"+name+'\''+ ",age="+age+ '}'; } }
2、通过在Collections.sort()方法中实现Comparable
publicclassClient{ publicstaticvoidmain(String[]args){ Liststudents=newArrayList<>(); students.add(newStudent("a",18)); students.add(newStudent("c",19)); students.add(newStudent("b",20)); Collections.sort(students,newComparator (){ @Override publicintcompare(Studento1,Studento2){ returno1.getAge()>o2.getAge()?-1:(o1.getAge()==o2.getAge()?0:1); } }); for(Studentstudent:students){ System.out.println(student.toString()); } } }
以上就是java中实现对类的对象进行排序的详细内容,感谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。