「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]