Java でリストをアルファベット順に並べ替える
-
Java で
Collections.sort()メソッドを使用してリストを並べ替える -
Java 8 で
list.stream().sorted()メソッドを使用してリストを並べ替える - Java で Guava ライブラリを使用してリストを並べ替える
-
Java で
Comparator.naturalOrder()を使用してリストを並べ替える -
Java の
Stringクラスを使用してリストをソートする
このチュートリアルでは、Java で要素のリストをアルファベット順に並べ替える方法を紹介します。
List は、Java で同様のタイプの要素を格納するために使用される線形データ型です。Java では、List はインターフェースであり、ArrayList はその実装クラスです。
リストを並べ替えるには、Collections クラス、String クラス、Google Guava ライブラリなどのいくつかの方法を使用できます。いくつかの例で理解しましょう。
Java で Collections.sort() メソッドを使用してリストを並べ替える
Collections は、データを収集するためのいくつかのメソッドを提供する java.util パッケージのクラスです。リスト要素をソートするための 1つの sort() メソッドを提供します。
ここでは、この方法を使用してリストをアルファベット順に並べ替えました。以下の例を参照してください。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("India");
list.add("US");
list.add("China");
list.add("Russia");
list.add("Australia");
System.out.println(list);
Collections.sort(list);
System.out.println("-----------Sorted List------------");
System.out.println(list);
}
}
出力:
[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]
sort() メソッドには、大文字と小文字を区別しない順序で要素を並べ替えるために 1つの追加の引数を取るオーバーロードされたバージョンが 1つあります。この方法を使用した以下の例を参照してください。これは正常に機能します。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("India");
list.add("US");
list.add("China");
list.add("Russia");
list.add("Australia");
System.out.println(list);
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
System.out.println("-----------Sorted List------------");
System.out.println(list);
}
}
出力:
[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]
Java 8 で list.stream().sorted() メソッドを使用してリストを並べ替える
Java 8 以降を使用している場合は、以下のコード例を使用してください。ここでは、ストリーム API を使用して要素を並べ替えました。
以下の例を参照してください。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("India");
list.add("US");
list.add("China");
list.add("Russia");
list.add("Australia");
System.out.println(list);
list = list.stream().sorted().collect(Collectors.toList());
System.out.println("-----------Sorted List------------");
System.out.println(list);
}
}
出力:
[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]
Java で Guava ライブラリを使用してリストを並べ替える
java.util パッケージとは別に、guava ライブラリを使用してリスト要素を並べ替えることができます。Google は、データのコレクションを処理するためにこの guava ライブラリを提供しています。
Ordering クラスとその natural() メソッドを使用して、要素を自然にソートされた順序で取得しました。以下の例を参照してください。
import com.google.common.collect.Ordering;
import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("India");
list.add("US");
list.add("China");
list.add("Russia");
list.add("Australia");
System.out.println(list);
list = Ordering.natural().sortedCopy(list);
System.out.println("-----------Sorted List------------");
System.out.println(list);
}
}
出力:
[India, US,China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]
Java で Comparator.naturalOrder() を使用してリストを並べ替える
この例では、Comparator を使用してリストを自然な順序で取得しました。naturalOrder() メソッドを list.sort() メソッドに渡しました。
以下の例を参照してください。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("India");
list.add("US");
list.add("China");
list.add("Russia");
list.add("Australia");
System.out.println(list);
list.sort(Comparator.naturalOrder());
System.out.println("-----------Sorted List------------");
System.out.println(list);
}
}
出力:
[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]
Java の String クラスを使用してリストをソートする
リスト要素の並べ替え中に文字列の大文字と小文字を無視する場合は、compareToIgnoreCase() および method.sort() メソッドを使用します。String クラスとメソッド参照を使用して、並べ替えられたリスト要素を取得しました。
以下の例を参照してください。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("India");
list.add("US");
list.add("China");
list.add("Russia");
list.add("Australia");
System.out.println(list);
list.sort(String::compareToIgnoreCase);
System.out.println("-----------Sorted List------------");
System.out.println(list);
}
}
出力:
[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]