
在Java中可以对类数组和集合来重写sort方法。
1.在类数组中使用的是Arrays.sort()
例如我有三个学生,一个类数组中分别有学生的年龄和名字,现在要按照他的年龄进行排序,如果是降序的话,就需要将sort方法重写,代码如下:
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Student n[]=new Student[3];
for(int i=0;i<3;i++){
n[i]=new Student();
n[i].name=sc.next();
n[i].age=sc.nextInt();
}
Arrays.sort(n,new Comparator<Student>(){
@Override
public int compare(Student o1, Student o2) {
if(o1.age<o2.age)
return 1;
else
return -1;
}
});
for(int i=0;i<3;i++){
System.out.println(n[i].name+" "+n[i].age);
}
}
}
class Student{
String name;
int age;
Student(){}
public Student(String name,int age){
this.name=name;
this.age=age;
}
2.如何是集合的话,就需要使用Collections.sort()进行重写。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Student> n=new ArrayList<>();
for(int i=0;i<3;i++){
n.add(new Student(sc.nextInt(),sc.next()));
}
//重写
Collections.sort(n,new Comparator<Student>(){
@Override
public int compare(Student o1, Student o2) {
if(o1. age<o2. age){
return 1;
}
else
return -1;
}
});
for(int i=0;i<3;i++){
System.out.println(n.get(i). age+" "+n.get(i).name);
}
}
}
class Student{
int age;
String name;
Student(int age,String name){
this. age= age;
this.name=name;
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)