[21728]Compareableソート


アルゴリズムソート部分でsort()を用いた構文を学習する.
Javaでは、ソートはjavaです.util.Collectionsクラスを用いた静的方法sort()を以前に学んだことがある.
sort()メソッドは2つあります
まず、今日はComparable<T>インターフェースを使って
生徒の名前と成績をリストで記録し,成績に応じて降順に並べた.
package com.company;
//학생의 '점수'를 기준으로 정렬 수행하기
import java.util.*;

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 this.name;
    }
    public int GetScore(){
        return this.score;
    }
    //정렬 기준은 '점수'가 '낮은 순서'
    @Override
    public int compareTo(Student other) {
        if(this.score < other.score){
            return -1;
        }
        return 1;
    }
}
public class Main {
    //학생 수 N
    public static int N = 0;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        List<Student> students = new ArrayList<>();
        //N명의 학생 정보를 입력받아 List에 저장
        for (int i = 0; i < N; i++) {
            String name = sc.next();
            int score = sc.nextInt();
            students.add(new Student(name, score));
        }
        sc.close();
        Collections.sort(students);
        for(int j = 0; j<students.size();j++){
            System.out.print(students.get(j).GetName() + " ");
        }
    }
}