logo

كيفية فرز صفيف السلسلة في جافا

في البرمجة، فرز مهم لأنه يضع عناصر مجموعة مصفوفة بترتيب معين. النظام المستخدم على نطاق واسع هو الترتيب الأبجدي أو النظام الطبيعي . يتم استخدام الفرز لتحديد البيانات الأساسية (عملية تحويل البيانات في النموذج القياسي) ولإنتاج تنسيق يمكن قراءته بواسطة الإنسان. في هذا القسم سوف نتعلم كيفية فرز مجموعة السلسلة في جافا استخدام المنطق المحدد من قبل المستخدم و المصفوفات. نوع() طريقة

هناك طريقتان لفرز مصفوفة سلسلة في Java:

  • استخدام تعريف المستخدم منطق
  • باستخدام المصفوفات.الفرز () طريقة

استخدام المنطق المحدد من قبل المستخدم

يمكننا فرز مصفوفة سلسلة من خلال مقارنة كل عنصر مع العناصر المتبقية. وفي المثال التالي، قمنا بنفس الشيء. لقد استخدمنا اثنين من الحلقات. الحلقة الداخلية (الثانية) تتجنب التكرار بالمقارنة. إذا كان الشرط (countries[i].compareTo(countries[j])>0) صحيحًا أكثر من 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.util التي توفر نوع() طريقة ترتيب المصفوفة تصاعدياً يستخدم خوارزمية الفرز السريع ثنائي المحور للفرز. تعقيدها هو يا (ن سجل (ن)) . إنها ثابتة الطريقة التي تقوم بتحليل مجموعة مصفوفة كمعلمة ولا يرجع أي شيء. يمكننا استدعاؤه مباشرة باستخدام اسم الفئة. يقبل مصفوفة من النوع int، float، double، long، char، byte.

بناء الجملة:

 public static void sort(int[] a) 

أين أ هي مجموعة لتكون قصيرة.

ملاحظة: مثل فئة المصفوفات، توفر فئة المجموعات أيضًا طريقة الفرز () لفرز المصفوفة. ولكن هناك فرق بينهما. تعمل طريقة الفرز () لفئة المصفوفات مع النوع البدائي بينما تعمل طريقة الفرز () لفئة المجموعات مع مجموعات الكائنات، مثل LinkedList وArrayList وما إلى ذلك.

يمكننا إجراء الفرز بالطرق التالية:

صيغة ميسون
    ترتيب تصاعديأو ترتيب ابجدي أو النظام الطبيعي تنازلياأو عكس النظام الطبيعي

فرز صفيف السلسلة بترتيب تصاعدي أو ترتيب أبجدي

ال ترتيب تصاعدي ترتيب العناصر من الترتيب الأدنى إلى الأعلى. ومن المعروف أيضا باسم النظام الطبيعي أو ترتيب ابجدي .

لنقم بفرز مصفوفة باستخدام طريقة الترتيب () لفئة المصفوفات.

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] 

فرز مصفوفة السلسلة بترتيب تنازلي أو ترتيب طبيعي عكسي

باستخدام طريقة الترتيب العكسي ().

جافا المجموعات يوفر الفصل ترتيب عكسي() طريقة لفرز المصفوفة بترتيب معجمي عكسي. إنها طريقة ثابتة، لذا يمكننا استدعاؤها مباشرةً باستخدام اسم الفئة. ولا يقوم بتحليل أي معلمة. يعود أ المقارنة الذي يفرض عكس الترتيب الطبيعي (الترتيب التصاعدي).

هذا يعني أن المصفوفة تقوم بفرز العناصر بترتيب تصاعدي باستخدام طريقة الترتيب () ، وبعد ذلك تقوم طريقة الترتيب العكسي () بعكس الترتيب الطبيعي، ونحصل على المصفوفة التي تم فرزها بترتيب تنازلي.

بناء الجملة:

 public static Comparator reverseOrder() 

لنفترض أن a[] عبارة عن مصفوفة سيتم فرزها بترتيب تنازلي. سوف نستخدم طريقة ()reverseOrder بالطريقة التالية:

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

دعونا فرز مجموعة سلسلة في الترتيب التنازلي.

الاستعداد لاختبار mockito

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]