logo

Как да сортирате масив от низове в Java

В програмирането, сортиране е важно, защото поставя елементи от ан масив в определен ред. Широко използваният ред е по азбучен ред или естествен ред . Сортирането се използва за канонизиране (процес на преобразуване на данни в стандартна форма) на данни и за създаване на четим от човека формат. В този раздел ще научим как да сортирате масив от низове в Java използвайки дефинирана от потребителя логика и Масиви. вид() метод

Има два начина за сортиране на низов масив в Java:

  • Използвайки Дефиниран от потребителя Логика
  • Използвайки Arrays.sort() Метод

Използване на дефинирана от потребителя логика

Можем да сортираме масив от низове, като сравняваме всеки елемент с останалите елементи. В следващия пример направихме същото. Използвали сме две for цикли. Вътрешният (втори) for цикъл избягва повторенията при сравнение. Ако условието (countries[i].compareTo(countries[j])>0) е вярно от 0, то извършва размяната и сортира масива.

игра pigeon за android

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, който предоставя вид() метод за сортиране на масив във възходящ ред. То използва Dual-Pivot Quicksort алгоритъм за сортиране. Сложността му е O(n log(n)) . Това е статичен метод, който анализира an масив като параметър и не връща нищо. Можем да го извикаме директно, като използваме името на класа. Приема масив от тип int, float, double, long, char, byte.

Синтаксис:

 public static void sort(int[] a) 

Където а е масив, който трябва да бъде кратък.

Забележка: Подобно на класа Arrays, класът Collections също предоставя метода sort() за сортиране на масива. Но между тях има разлика. Методът sort() на класа Arrays работи за примитивен тип, докато методът sort() на класа Collections работи за обекти Collections, като LinkedList, ArrayList и др.

Можем да извършим сортиране по следните начини:

    Възходящ редили Азбучен ред или Естествен ред Низходящ редили Обратен естествен ред

Сортиране на низовия масив във възходящ ред или по азбучен ред

The възходящ ред подрежда елементите в най-нисък към най-висок ред. Известен е още като естествен ред или азбучен ред .

Нека сортираме масив с помощта на метода sort() на класа Arrays.

SortStringArrayExample2.java

примери за програми на python
 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 Колекции клас осигурява обратен ред() метод за сортиране на масива в обратен лексикографски ред. Това е статичен метод, така че можем да го извикаме директно, като използваме името на класа. Не анализира нито един параметър. Връща 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]