logo

Java で ArrayList をソートする方法

Javaでは、 コレクション インターフェイスを提供するフレームワークです ( セット、リスト、キュー、 など) とクラス ( 配列リスト、リンクリスト、 など) オブジェクトのグループを保存します。これらのクラスは、順序付けされていない方法でデータを保存します。場合によっては、データを順序立てて配置する必要があります。これは、 並べ替え 。並べ替えは 2 つの方法で実行できます。 上昇 または 降順 注文。

このセクションでは、次のことを学びます ArrayListを昇順に並べ替える方法 そして 降順。

配列リスト

ジャワ配列リスト で定義されているコレクション フレームワークのクラスです。java.utilパッケージ。 AbstractList クラスを継承します。要素を動的に保存します。 ArrayList の利点は、サイズ制限がないことです。従来のアレイよりも柔軟性が高くなります。重複した要素が含まれる可能性があります。 List インターフェイスは次のメソッドを実装しているため、List インターフェイスのすべてのメソッドを使用することもできます。 リスト インターフェース。

ArrayList は昇順と降順の 2 つの方法で並べ替えることができます。 Collections クラスには、Java で ArrayList を並べ替えるための 2 つのメソッドが用意されています。

    選別() reverseOrder()

Collections.sort() メソッド

ArrayList は、 選別() の方法 Javaのコレクションクラス 。 ArrayList のオブジェクトを並べ替えるパラメータとして受け取り、その要素の自然な順序に従って昇順に並べ替えられた ArrayList を返します。

htmlタグ

構文

 public static <t extends comparable> void sort(List list) </t>

覚えて: ArrayList 内のすべての要素は相互に比較可能である必要があり、そうでない場合はスローされます。 クラスキャスト例外。 ここで、相互に比較可能とは、リストに同じタイプの要素が含まれている必要があることを意味します。たとえば、次のコードのスニペットを考えてみましょう。

 //creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add(&apos;Computer&apos;); list.add(123); list.add(&apos;Hard Disk&apos;); list.add(&apos;DRAM&apos;); 

上記の例では、リストには 4 つの要素があり、そのうち 3 つの要素は String 型で、1 つは Integer 型であることがわかります。 String 内の 3 つの要素は相互に比較できますが、Integer 型の要素は他の 3 つと比較できません。したがって、リストには同じタイプの要素が含まれている必要があります。

Collections.reverseOrder() メソッド

ArrayList を並べ替えたい場合は、 降順 注文、 Java コレクション クラスが提供する reverseOrder() 方法。これにより、ArrayList を並べ替えることができます。 逆引き辞書編集 注文。

構文

 public static Comparator reverseOrder() 

Comparable インターフェイスを実装するオブジェクトのコレクションに自然な順序の逆を強制するコンパレータを返します。

reverseOrder() メソッドを直接呼び出すわけではないことに注意してください。私たちはそれを一緒に使用します コレクション.sort() 方法は次のとおりです。

文字列と部分文字列
 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

したがって、ArrayList の降順での並べ替えは 2 つのステップで行われます。最初に ArrayList がデータを昇順で並べ替え、その後、並べ替えられたデータが reverseOrder() 方法。

ArrayListを昇順にソートするプログラムを作成してみましょう。

ArrayList を昇順で並べ替える

次の例では、String 型の ArrayList を作成し、そこにいくつかの要素を追加しています。その後、Collections クラスの sort() メソッドを呼び出し、ArrayList クラスのオブジェクト、つまり要素を昇順に並べ替えるリストを渡します。

SortArrayListExample1.java

 import java.util.*; public class SortArrayListExample1 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Volkswagen&apos;); list.add(&apos;Toyota&apos;); list.add(&apos;Porsche&apos;); list.add(&apos;Ferrari&apos;); list.add(&apos;Mercedes-Benz&apos;); list.add(&apos;Audi&apos;); list.add(&apos;Rolls-Royce&apos;); list.add(&apos;BMW&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

出力:

Javaで文字列をJSONに変換する
 Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen] 

Integer 型の ArrayList を並べ替える別の例を見てみましょう。

SortArrayListExample2.java

 import java.util.*; public class SortArrayListExample2 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(55); list.add(34); list.add(98); list.add(67); list.add(39); list.add(76); list.add(81); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

出力:

 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

ArrayList を降順で並べ替える

次の例では、String 型の ArrayList を作成し、そこにいくつかの要素を追加しています。その後、Collections クラスの sort() メソッドとともに reverseOrder() メソッドを呼び出し、ArrayList クラスのオブジェクト、つまり要素を降順に並べ替えるリストを渡しました。

SortArrayListExample3.java

 import java.util.*; public class SortArrayListExample3 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Data Science&apos;); list.add(&apos;Testing&apos;); list.add(&apos;C#&apos;); list.add(&apos;Basic Language&apos;); list.add(&apos;UML&apos;); list.add(&apos;Algorithms &apos;); list.add(&apos;Computer Networks&apos;); list.add(&apos;Python&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

出力:

 Before Sorting: [Data Science, Testing, C#, Basic Language, UML, Algorithms, Computer Networks, Python] After Sorting: [UML, Testing, Python, Data Science, Computer Networks, C#, Basic Language, Algorithms] 

SortArrayListExample4.java

 import java.util.*; public class SortArrayListExample4 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(566); list.add(230); list.add(123); list.add(110); list.add(689); list.add(12); list.add(95); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in descending order Collections.sort(list, Collections.reverseOrder()); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

出力:

 ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12