关于在Java中重写sort方法

关于在Java中重写sort方法,第1张

关于在Java中重写sort方法

在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;
    }

}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/719565.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-25
下一篇2022-04-25

发表评论

登录后才能评论

评论列表(0条)

    保存