はじめに
ソートはコンピュータサイエンスにおいて重要な操作であり、Java はさまざまなデータ構造をソートするためのさまざまな組み込みメソッドを提供しています。Java には、さまざまなデータ構造をソートするためのさまざまなクラスが用意されています。この実験では、配列、コレクション、およびユーザー定義クラスのインスタンスのソートを検討します。
ソートはコンピュータサイエンスにおいて重要な操作であり、Java はさまざまなデータ構造をソートするためのさまざまな組み込みメソッドを提供しています。Java には、さまざまなデータ構造をソートするためのさまざまなクラスが用意されています。この実験では、配列、コレクション、およびユーザー定義クラスのインスタンスのソートを検討します。
配列は、同じ種類のデータを順序付けて格納するために使用される単純なデータ構造です。Arrays
クラスの組み込みの sort()
メソッドを使用して配列をソートすることができます。
次のコードは、sort()
メソッドを使用して配列をソートする方法を示しています。
public static void main(String[] args) {
int[] arr = {7, 9, 1, 0, 2, 5, 6, 11};
System.out.println("Array Before Sorting: " + Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("Array After Sorting: " + Arrays.toString(arr));
}
このコードを実行するには、ターミナルで ~/project
ディレクトリに移動し、次のコマンドを実行します。
$ javac Sorting.java
$ java Sorting
このコードは、配列を昇順にソートします。配列を降順にソートする場合は、Comparator
インターフェイスを使用してソートする必要があります。
Java は、Collections
クラスを提供しており、このクラスには、リスト、セット、マップなどのコレクションをソートするための sort()
メソッドがあります。この関数の動作モデルは、Arrays
クラスの sort()
メソッドと似ています。
次のコードは、sort()
メソッドを使用して整数のリストをソートする方法を示しています。
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(6);
list.add(3);
list.add(8);
list.add(1);
list.add(9);
System.out.println("List before sorting: " + list);
Collections.sort(list);
System.out.println("List after sorting: " + list);
}
このコードを実行するには、ターミナルで ~/project
ディレクトリに移動し、次のコマンドを実行します。
$ javac Sorting.java
$ java Sorting
セットは、重複なしで順序なしのデータを格納するために使用されます。Collections
クラスの sort()
メソッドを使用してセットを直接ソートすることはできません。ただし、セットのすべての要素をリストに転送してからリストをソートすることで、順序付きのデータを表示することができます。
次のコードは、sort()
メソッドを使用して整数のセットをソートする方法を示しています。
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
set.add(6);
set.add(3);
set.add(-2);
set.add(1);
set.add(9);
List<Integer> list = new ArrayList<Integer>(set);
Collections.sort(list);
System.out.println("Set after sorting: " + list);
}
このコードを実行するには、ターミナルで ~/project
ディレクトリに移動し、次のコマンドを実行します。
$ javac Sorting.java
$ java Sorting
このコードの出力は、ソートされた整数のリストになります。
マップは、キーと値のペアを格納するために使用されます。マップをキーまたは値に基づいてソートすることができます。TreeMap を使用して、キーと値のペアをソートされた順序で格納することもできます。
次のコードは、sort()
メソッドを使用して整数のマップをソートする方法を示しています。
public static void main(String[] args) {
Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(6, "Apple");
map.put(3, "Banana");
map.put(1, "Mango");
map.put(9, "Orange");
System.out.println("Map before sorting: " + map);
// キーでソート
Map<Integer, String> sortedByKeyMap = new TreeMap<Integer, String>(map);
System.out.println("Map after sorting by keys: " + sortedByKeyMap);
// 値でソート
List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
return (o1.getValue()).compareTo(o2.getValue());
}
});
Map<Integer, String> sortedByValueMap = new LinkedHashMap<Integer, String>();
for (Map.Entry<Integer, String> entry : list) {
sortedByValueMap.put(entry.getKey(), entry.getValue());
}
System.out.println("Map after sorting by values: " + sortedByValueMap);
}
このコードを実行するには、ターミナルで ~/project
ディレクトリに移動し、次のコマンドを実行します。
$ javac Sorting.java
$ java Sorting
このコードは、マップをキーと値に基づいてソートします。
この実験では、Java で異なるデータ構造をソートする方法を示しました。配列、コレクション、およびマップをソートする方法を学びました。また、Comparable
および Comparator
インターフェイスを使用してユーザー定義クラスのオブジェクトをソートする方法も学びました。Collections
および Arrays
クラスの sort()
メソッドを使用して、リストと配列をソートしました。最後に、マップを値とキーに基づいてソートする方法を学びました。