logo

Як відсортувати масив рядків у Java

У програмуванні, сортування важливий, оскільки він містить елементи an масив в певному порядку. Широко використовуваний порядок в алфавітному порядку або природний порядок . Сортування використовується для канонізації (процесу перетворення даних у стандартну форму) даних і створення зручного для читання формату. У цьому розділі ми дізнаємося як сортувати масив рядків у Java використовуючи визначена користувачем логіка і Масиви. sort() метод

Існує два способи сортування масиву рядків у Java:

  • Використання Визначений користувачем Логіка
  • Використовуючи Arrays.sort() метод

Використання визначеної користувачем логіки

Ми можемо сортувати рядковий масив, порівнюючи кожен елемент з іншими елементами. У наступному прикладі ми зробили те саме. Ми використали два цикли for. Внутрішній (другий) цикл for дозволяє уникнути повторень у порівнянні. Якщо умова (countries[i].compareTo(countries[j])>0) має значення true, ніж 0, виконується заміна та сортування масиву.

таблиця реакцій

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, який надає sort() метод для сортування масиву в порядку зростання. Це використовує Алгоритм швидкого сортування Dual-Pivot для сортування. Його складність полягає в тому O(n log(n)) . Це статичний метод, який аналізує an масив як параметр і нічого не повертає. Ми можемо викликати його безпосередньо, використовуючи назву класу. Він приймає масив типу int, float, double, long, char, byte.

Синтаксис:

 public static void sort(int[] a) 

Де a є коротким масивом.

Примітка. Як і клас Arrays, клас Collections також надає метод sort() для сортування масиву. Але між ними є різниця. Метод sort() класу Arrays працює для примітивного типу, тоді як метод sort() класу Collections працює для об’єктів Collections, таких як LinkedList, ArrayList тощо.

Ми можемо виконати сортування такими способами:

    В порядку зростанняабо Алфавітний порядок або Природний порядок У порядку зменшенняабо Зворотний природний порядок

Сортування масиву рядків у порядку зростання або в алфавітному порядку

The в порядку зростання розташовує елементи в порядку від найнижчого до найвищого. Він також відомий як природний порядок або алфавітний порядок .

Давайте відсортуємо масив за допомогою методу sort() класу Arrays.

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().

Java Колекції клас забезпечує reverseOrder() метод сортування масиву у зворотному лексикографічному порядку. Це статичний метод, тому ми можемо викликати його безпосередньо, використовуючи назву класу. Він не аналізує жодного параметра. Він повертає a компаратор що накладає порядок, зворотний до природного (порядок за зростанням).

Це означає, що масив сортує елементи в порядку зростання за допомогою методу sort(), після цього метод reverseOrder() змінює природний порядок, і ми отримуємо відсортований масив у порядку спадання.

Синтаксис:

 public static Comparator reverseOrder() 

Припустимо, a[] — це масив, який потрібно відсортувати в порядку спадання. Ми будемо використовувати метод reverseOrder() таким чином:

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

Давайте відсортуємо рядковий масив у порядку спадання.

сортування вибору java

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]