コツコツ学習ブログ

プログラマのweb上のメモ的なもの

Collectionクラスのsort

自然順序づけとは

あるクラスについて一般的に想定される並べ順のこと

java.lang.Comparable

あるクラスを開発する際に、そのクラスの自然順序を宣言するための インタフェース。 このインタフェースを実装するとcompareTo()が強制され、 自然順序づけの方法を宣言できる

Main.java

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Account> list = new ArrayList<>();
        Account a1 = new Account();
        Account a2 = new Account();
        a1.number = 200;
        a1.number = 100;
        list.add(a1);
        list.add(a2);
        System.out.println("ソート前: ");
        for (Account a : list) {
            System.out.println(a.number);
        }

        Collections.sort(list);

        System.out.println("ソート後: ");
        for (Account account : list) {
            System.out.println(account.number);
        }
    }
}
Account.java

public class Account implements Comparable<Account> {
    int number;
    int zandaka;

    @Override
    public int compareTo(Account o) {
        if (this.number < o.number) {
            return -1;
        }
        if (this.number > o.number) {
            return 1;
        }

        return 0;
    }

}