那么我就来详细讲解一下Java中使用Arrays.sort()方法对对象进行排序的完整攻略。
1.定义一个对象及排序方式
首先,我们需要定义一个对象,并确定排序方式。以一个学生对象为例,假设我们需要按照学生的成绩进行排序,我们需要为这个学生对象定义一个Score属性,然后重写Comparable接口的compareTo()方法。
public class Student implements Comparable<Student>{
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
@Override
public int compareTo(Student o) {
if(this.score != o.getScore()){
return o.getScore() - this.score;
}else{
return this.name.compareTo(o.getName());
}
}
}
上面代码中的compareTo()方法用于比较两个Student对象的score属性。如果它们的score值不同,我们就返回score值的差值,以此决定相对大小;如果score值相同,我们就调用name的compareTo()方法比较它们的姓名。
2.创建对象数组及排序
现在,我们已经确定了排序方式,接下来我们需要创建一个Student类型的数组,并使用Arrays.sort()方法进行排序。示例如下:
public class SortExample {
public static void main(String[] args) {
Student[] students = new Student[5];
students[0] = new Student("张三", 90);
students[1] = new Student("李四", 85);
students[2] = new Student("王五", 95);
students[3] = new Student("赵六", 80);
students[4] = new Student("钱七", 85);
Arrays.sort(students);
for(Student student : students){
System.out.println(student.getName() + " " + student.getScore());
}
}
}
上面的示例创建了一个Student类型的数组,包含了5个学生信息,然后使用Arrays.sort()方法对它们进行排序,最后将排序结果遍历输出,结果如下:
王五 95
张三 90
李四 85
钱七 85
赵六 80
3.使用Comparator自定义排序
除了使用Comparable接口来定义排序方式外,我们还可以使用Comparator接口来自定义排序方式。示例如下:
public class SortExample2 {
public static void main(String[] args) {
Student[] students = new Student[5];
students[0] = new Student("张三", 90);
students[1] = new Student("李四", 85);
students[2] = new Student("王五", 95);
students[3] = new Student("赵六", 80);
students[4] = new Student("钱七", 85);
Arrays.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
if(o1.getScore() != o2.getScore()){
return o2.getScore() - o1.getScore();
}else{
return o1.getName().compareTo(o2.getName());
}
}
});
for(Student student : students){
System.out.println(student.getName() + " " + student.getScore());
}
}
}
上面的示例中,我们使用了Comparator接口来自定义排序方式,它的compare方法用于比较两个Student对象的score属性。如果它们的score值不同,我们就返回score值的差值,以此决定相对大小;如果score值相同,我们就调用name的compareTo()方法比较它们的姓名。最后,使用Arrays.sort()方法对数组进行排序,并输出排序结果,结果如下:
王五 95
张三 90
钱七 85
李四 85
赵六 80
这就是Java使用Arrays.sort()方法实现给对象排序的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java使用Arrays.sort()方法实现给对象排序 - Python技术站