logo

Javaで文字列配列をソートする方法

プログラミングでは、 並べ替え の要素が含まれるため、これは重要です。 配列 特定の順序で。広く使われている順序 アルファベット順です または 自然な秩序 。並べ替えは、データを正規化 (標準形式にデータを変換するプロセス) し、人間が判読できる形式を生成するために使用されます。このセクションでは、次のことを学びます Javaで文字列配列をソートする方法 使用して ユーザー定義ロジック そして 配列。選別() 方法

Java で文字列配列をソートするには 2 つの方法があります。

  • 使用する ユーザー定義の 論理
  • を使用して、 配列.sort() 方法m

ユーザー定義ロジックの使用

各要素を残りの要素と比較することで、文字列配列を並べ替えることができます。次の例では、同じことを行っています。 for ループを 2 つ使用しました。内側 (2 番目) の for ループは、比較の繰り返しを回避します。条件 (countries[i].compareTo(countries[j])>0) が 0 よりも true の場合、スワップが実行され、配列が並べ替えられます。

Javaのキューと優先キュー

SortStringArrayExample1.java

 import java.util.Arrays; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; int size = countries.length; //logic for sorting for(int i = 0; i<size-1; i++) { for (int j="i+1;" j0) swapping array elements string temp="countries[i];" countries[i]="countries[j];" countries[j]="temp;" } prints the sorted in ascending order system.out.println(arrays.tostring(countries)); < pre> <p> <strong>Output:</strong> </p> <pre> [ Australia, America, Denmark, France, Germany, India, Italy, Netherlands, South-Africa, Yugoslavia, Zimbabwe] </pre> <h3>Using the Arrays.sort() Method</h3> <p>In Java, <strong>Arrays</strong> is the class defined in the java.util package that provides <strong>sort()</strong> method to sort an array in ascending order. It uses <strong>Dual-Pivot Quicksort algorithm</strong> for sorting. Its complexity is <strong>O(n log(n))</strong> . It is a <strong>static</strong> method that parses an <strong>array</strong> as a parameter and does not return anything. We can invoke it directly by using the class name. It accepts an array of type int, float, double, long, char, byte.</p> <p> <strong>Syntax:</strong> </p> <pre> public static void sort(int[] a) </pre> <p>Where <strong>a</strong> is an array to be short.</p> <h4>Note: Like the Arrays class, the Collections class also provides the sort() method to sort the array. But there is a difference between them. The sort() method of the Arrays class works for primitive type while the sort() method of the Collections class works for objects Collections, such as LinkedList, ArrayList, etc.</h4> <p>We can perform sorting in the following ways:</p> <ul> <tr><td>Ascending Order</td> or <strong>Alphabetical Order</strong> or <strong>Natural Order</strong>  </tr><tr><td>Descending Order</td> or <strong>Reverse Natural Order</strong>  </tr></ul> <h3>Sort String Array in Ascending Order or Alphabetical Order</h3> <p>The <strong>ascending order</strong> arranges the elements in the lowest to highest order. It is also known as <strong>natural order</strong> or <strong>alphabetical order</strong> .</p> <p>Let&apos;s sort an array using the sort() method of the Arrays class.</p> <p> <strong>SortStringArrayExample2.java</strong> </p> <pre> import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] </pre> <h3>Sort String Array in Descending Order or Reverse Natural Order</h3> <h3>Using the reverseOrder() Method</h3> <p>Java <strong>Collections</strong> class provides the <strong>reverseOrder()</strong> method to sort the array in reverse-lexicographic order. It is a static method, so we can invoke it directly by using the class name. It does not parse any parameter. It returns a <strong>comparator</strong> that imposes the reverse of the natural ordering (ascending order).</p> <p>It means that the array sorts elements in the ascending order by using the sort() method, after that the reverseOrder() method reverses the natural ordering, and we get the sorted array in descending order.</p> <p> <strong>Syntax:</strong> </p> <pre> public static Comparator reverseOrder() </pre> <p>Suppose, a[] is an array to be sort in the descending order. We will use the reverseOrder() method in the following way:</p> <pre> Arrays.sort(a, Collections.reverseOrder()); </pre> <p>Let&apos;s sort a string array in the descending order.</p> <p> <strong>SortStringArrayExample3.java</strong> </p> <pre> import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia] </pre> <hr></size-1;>

Arrays.sort() メソッドの使用

Javaでは、 配列 を提供する java.util パッケージで定義されたクラスです。 選別() 配列を昇順に並べ替えるメソッド。それは使用しています デュアルピボットクイックソートアルゴリズム 仕分け用に。その複雑さは、 O(n log(n)) 。それは 静的 を解析するメソッド 配列 パラメータとして使用し、何も返しません。クラス名を使用して直接呼び出すことができます。 int、float、double、long、char、byte 型の配列を受け入れます。

構文:

 public static void sort(int[] a) 

どこ ある は短い配列です。

注: Arrays クラスと同様に、Collections クラスも配列を並べ替えるための sort() メソッドを提供します。しかし、それらの間には違いがあります。 Arrays クラスの sort() メソッドはプリミティブ型に対して機能しますが、Collections クラスの sort() メソッドは LinkedList、ArrayList などのオブジェクト コレクションに対して機能します。

並べ替えは次の方法で実行できます。

アーリアン・カーン
    昇順または アルファベット順 または 自然な秩序 降順または 自然順序を逆転する

文字列配列を昇順またはアルファベット順に並べ替えます

昇順 要素を最低位から最高位の順序で配置します。としても知られています 自然な秩序 または アルファベット順

Arrays クラスの sort() メソッドを使用して配列を並べ替えてみましょう。

SortStringArrayExample2.java

 import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } 

出力:

 [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] 

文字列配列を降順または自然順序の逆に並べ替える

reverseOrder() メソッドの使用

ジャワ コレクション クラスが提供するのは、 reverseOrder() 配列を逆辞書順に並べ替えるメソッド。これは静的メソッドであるため、クラス名を使用して直接呼び出すことができます。パラメーターは解析されません。を返します コンパレータ これは、自然な順序の逆 (昇順) を課します。

これは、sort() メソッドを使用して配列が要素を昇順に並べ替え、その後 reverseOrder() メソッドが自然な順序を逆にして、降順に並べ替えられた配列を取得することを意味します。

構文:

 public static Comparator reverseOrder() 

a[] が降順でソートされる配列であるとします。 reverseOrder() メソッドを次の方法で使用します。

 Arrays.sort(a, Collections.reverseOrder()); 

文字列配列を降順に並べ替えてみましょう。

比較可能なリスト

SortStringArrayExample3.java

 import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } 

出力:

 [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]