「Java」LinkedListの要素をソートする

2022年2月25日

環境
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]

 

Java

Posted by arkgame