「Java」LinkedListの要素をソートする
環境
JavaSE1.8
Eclipse 4.6.2
説明
インタフェースComparator<T>
オブジェクトのコレクションで全体順序付けを行う比較関数です。
コンパレータ(Comparator)をソート・メソッド(Collections.sortやArrays.sortなど)に渡すと、ソート順を正確に制御できます。
int compare(T o1, T o2)
順序付けのために2つの引数を比較します。最初の引数が2番目の引数より小さい場合は負の整数、
両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数を返します。
使用例
package com.arkgame.study;
import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedList;
public class LinkedListSortDemo {
private static final String cityArr[] = { "tokyo", "oosaka", "fukuoka", "yokohama" };
public static void main(String[] args) {
LinkedList<String> cityLst = new LinkedList<String>(Arrays.asList(cityArr));
System.out.println("ComparatorでLinkedListをソートする");
Comparator<String> cmp = new Comparator<String>() {
@Override
public int compare(String strA, String strB) {
return strA.compareTo(strB);
}
};
System.out.println("LinkedListのソート前:\n" + cityLst);
cityLst.sort(cmp);
System.out.println("\nLinkedListのソート後:\n" + cityLst);
}
}
実行結果
ComparatorでLinkedListをソートする LinkedListのソート前: [tokyo, oosaka, fukuoka, yokohama] LinkedListのソート後: [fukuoka, oosaka, tokyo, yokohama]