Java リストの要素をソートする(Collectionsクラス)

JavaのArraylistなどのリストの要素をソートするサンプルです。

確認環境
・Java 8

目次

Collectionsクラス

public class Collections extends Object
  • Collectionsクラスのsortメソッドは、Arraylistなどのリストの要素を自然順序付けに従って昇順にソートします。
  • Collectionsクラスのreverseメソッドは、Arraylistなどのリストの要素を単純に逆順にします。自然順序付けに従った降順ではないので注意して下さい。
  • 自然順序付けに従った降順にしたい場合は、一旦sortメソッドで昇順にしてreverseを使用すると実現できます。
  • 以下は、OracleのJava8 API仕様のCollectionsクラスのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/Collections.html

数値を昇順にする(sortメソッド)

数値を昇順にするサンプルです。

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

public class Test1 {
    public static void main(String[] args) {
    	
        List<Integer> num1 = new ArrayList<>();
        num1.add(211);
        num1.add(35);
        num1.add(6711);
        
        Collections.sort(num1);
        
        for (Integer a : num1) {
            System.out.println(a);//35 211 6711
        }
    }
}

10~12行目は、リストに数値をセットしています。
14行目は、sortメソッドで昇順に並び替えています。
17行目は、数値が昇順で表示されます。

逆順にする(reverseメソッド)

逆順にするサンプルです。

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

public class Test1 {
    public static void main(String[] args) {
    	
        List<Integer> num1 = new ArrayList<>();
        num1.add(211);
        num1.add(35);
        num1.add(6711);
        
        Collections.reverse(num1);
        
        for (Integer a : num1) {
            System.out.println(a);//6711 35 211 
        }
    }
}

10~12行目は、リストに数値をセットしています。
14行目は、reverseメソッドで逆順にしています。
17行目は、単純に数値が逆の順序で表示されます。

数値を降順にする(sort+reverseメソッド)

数値を降順にするサンプルです。

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

public class Test1 {
    public static void main(String[] args) {
    	
        List<Integer> num1 = new ArrayList<>();
        num1.add(211);
        num1.add(35);
        num1.add(6711);
        
        Collections.sort(num1);
        Collections.reverse(num1);
        
        for (Integer a : num1) {
            System.out.println(a);//6711 211 35
        }
    }
}

10~12行目は、リストに数値をセットしています。
14行目は、sortメソッドで昇順に並び替えています。
15行目は、reverseメソッドで逆順にしています。
17行目は、数値が降順で表示されます。

数値を降順にする(別の書き方)

数値を降順にする別の書き方のサンプルです。

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

public class Test1 {
    public static void main(String[] args) {
    	
        List<Integer> num1 = new ArrayList<>();
        num1.add(211);
        num1.add(35);
        num1.add(6711);
        
        Collections.sort(num1,new java.util.Comparator<Integer>(){
            @Override
            public int compare(Integer i1,Integer i2) {
            	return i2 - i1;
            }
        });
        for (Integer a : num1) {
            System.out.println(a);//6711 211 35
        }
    }
}

10~12行目は、リストに数値をセットしています。
14~19行目は、数値を降順にしています。
21行目は、数値が降順で表示されます。

文字を昇順にする(sortメソッド)

文字も昇順や逆順にすることができます。

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

public class Test1 {
    public static void main(String[] args) {
    	
        List<String> color = new ArrayList<>();
        color.add("b");
        color.add("a");
        color.add("c");
        
        Collections.sort(color);
        
        for (String a : color) {
            System.out.println(a);//a b c
        }
    }
}

10~12行目は、リストに文字列をセットしています。
14行目は、sortメソッドで昇順に並び替えています。
17行目は、文字列が昇順で表示されます。

関連の記事

Java ArrayListの使い方のサンプル

△上に戻る