JavaRush /مدونة جافا /Random-AR /استراحة القهوة رقم 136. فرز مصفوفة بترتيب تصاعدي أو تنازل...

استراحة القهوة رقم 136. فرز مصفوفة بترتيب تصاعدي أو تنازلي باستخدام Arrays.sort(). ما هو الفرق بين واجهات القائمة والتعيين؟

نشرت في المجموعة

فرز مصفوفة بترتيب تصاعدي أو تنازلي باستخدام Arrays.sort()

المصدر: FreeCodeCamp من خلال هذا المنشور، ستتعلم كيفية فرز مصفوفة إما بترتيب تصاعدي أو تنازلي في Java. استراحة القهوة رقم 136.  فرز مصفوفة بترتيب تصاعدي أو تنازلي باستخدام Arrays.sort().  ما هو الفرق بين واجهات القائمة والتعيين؟  - 1في Java، نستخدم المصفوفات لتخزين مجموعة من المتغيرات (بنفس نوع البيانات) في متغير واحد. لكن في بعض الأحيان تظهر القيم المخزنة في المصفوفة بترتيب عشوائي. بفضل فئة المصفوفات في Java، لدينا عدة طرق للتعامل مع المصفوفات، بما في ذلك فرزها. إحدى الطرق التي سنستخدمها من فئة Arrays هي طريقة sort() ، والتي تقوم بفرز المصفوفة بترتيب تصاعدي. لفرز مصفوفة بترتيب تنازلي، استخدم طريقة ReverseOrder() لفئة Collections في Java.

كيفية فرز مصفوفة بترتيب تصاعدي في Java باستخدام Arrays.sort()

فيما يلي مثال لكيفية استخدام طريقة الترتيب () لفرز مصفوفة بترتيب تصاعدي.
import java.util.Arrays;

class ArraySort {
    public static void main(String[] args) {
        int[] arr = { 5, 2, 1, 8, 10 };
        Arrays.sort(arr);

        for (int values : arr) {
            System.out.print(values + ", ");
            // 1, 2, 5, 8, 10,
        }
    }
}
أول شيء قمنا به في المثال أعلاه هو استيراد فئة Arrays : import java.util.Arrays; . يتيح لنا هذا الوصول إلى جميع أساليب فئة Arrays . ثم أنشأنا مصفوفة تحتوي على أرقام بترتيب عشوائي: int[] arr = { 5, 2, 1, 8, 10 }; . لفرز هذه المصفوفة بترتيب تصاعدي، قمنا بتمرير المصفوفة كمعلمة إلى طريقة الترتيب () : Arrays.sort(arr); . لاحظ أنه يتم كتابة فئة المصفوفات أولاً قبل الوصول إلى طريقة الترتيب () باستخدام التدوين النقطي. وأخيرًا، أنشأنا حلقة وطبعنا المصفوفة على وحدة التحكم. والنتيجة هي مصفوفة مرتبة: 1, 2, 5, 8, 10 . الآن دعونا نتحدث عن فرز مصفوفة بترتيب تنازلي.

كيفية فرز مصفوفة بترتيب تنازلي في Java باستخدام Collections.reverseOrder()

لفرز مصفوفة بترتيب تنازلي، يجب عليك استخدام ()reverseOrder ، والذي يمكن الوصول إليه من فئة Collections . سنستمر في استخدام Arrays.sort(); ، ولكن في هذا المثال سيتطلب الأمر معلمتين - مصفوفة للفرز و Collections.reverseOrder() .
import java.util.Arrays;
import java.util.Collections;

class ArraySort {
    public static void main(String[] args) {
        Integer[] arr = { 5, 2, 1, 8, 10 };
        Arrays.sort(arr, Collections.reverseOrder());

        for (int values : arr) {
            System.out.print(values + ", ");
            // 10, 8, 5, 2, 1,
        }
    }
}
أول شيء فعلناه هو استيراد فئات المصفوفات والمجموعات لأننا سنستخدم الطرق التي توفرها هذه الفئات. قمنا بعد ذلك بإنشاء مصفوفة من الأرقام بترتيب عشوائي: Integer[] arr = { 5, 2, 1, 8, 10 }; . كما ترون، استخدمنا Integer[] بدلاً من int[] كما في المثال السابق. وإلا سيحدث خطأ. لفرز المصفوفة بترتيب تنازلي، قمنا بما يلي: Arrays.sort(arr, Collections.reverseOrder()); . المعلمة الأولى هي صفيف arr والذي سيتم فرزه بترتيب تصاعدي. ستقوم المعلمة الثانية، Collections.reverseOrder() ، بعكس ترتيب المصفوفة التي تم فرزها بحيث تكون بترتيب تنازلي. عند تكراره وطباعته، سيبدو المصفوفة بالشكل التالي: 10, 8, 5, 2, 1 .

خاتمة

في هذه المقالة، ناقشنا حول فرز المصفوفات في Java - وكيف يمكن فرزها بترتيب تصاعدي أو تنازلي. للقيام بذلك، يمكننا استخدام طريقة الفرز () والتي يمكن الوصول إليها من فئة المصفوفات . تأخذ طريقة الفرز () مصفوفة لفرزها كمعلمة. لفرز المصفوفة بترتيب تنازلي، استخدمنا طريقة ReverseOrder() التي توفرها فئة Collections. يتم تمريره كمعلمة ثانية إلى طريقة الفرز () بحيث يمكن إعادة ترتيب المصفوفة التي تم فرزها بترتيب تنازلي.

مجموعة جافا. ما هو الفرق بين واجهات القائمة والتعيين؟

المصدر: قائمة Rrtutors وSet هي واجهات Java لتوسيع واجهة المجموعة . في هذه المقالة، سنلقي نظرة على الاختلافات الرئيسية بين الاثنين، بالإضافة إلى كيفية استخدامها.

الاختلافات بين واجهات Set وList في Java

دعونا نحدد الاختلافات الرئيسية بين واجهات القائمة والتعيين بناءً على المعلمات الأساسية التالية:

تطبيق

تقوم القائمة بتنفيذ ArrayLists ، بينما تقوم HashSet بتنفيذ Set .

الفهرسة

يمكنك استخدام ListIterator للتحرك للأمام والخلف عبر القائمة ، ولكن ليس عبر المجموعة . استخدم Iterator بدلاً من ذلك (الذي يعمل مع كل من List و Set ).

طلب

لا تدعم واجهة Set أي ترتيب محدد. تم بالفعل فرز مجموعة من النوع Set وفقًا لقاعدتها الخاصة ولا يمكن فرزها بهذه الطريقة. القائمة هي قائمة مرتبة. يتم تخزين الكائنات بالترتيب الذي تمت إضافتها إلى القائمة. يتم الوصول إلى عناصر القائمة عن طريق الفهرس.

كائن فارغ

القائمة ليس لها أي قيود وتدعم إضافة قيم خالية، بينما تسمح المجموعة بقيمة فارغة واحدة على الأكثر.

التكرارات

يمكن أن تحتوي القائمة على نسخ مكررة، لكن لا يمكن أن تحتوي المجموعة على ذلك. لا تسمح المجموعة بالعناصر المكررة لأن جميع عناصرها يجب أن تكون فريدة. إذا قمت بإدراج عنصر مكرر في Set ، فسيتم استبدال القيمة الحالية.

متى يجب عليك استخدام القائمة والتعيين؟

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

مجموعة الأمثلة

import java.util.ArrayList;

import java.util.LinkedList;

import java.util.List;

public class ListExample {

            public static void main(String[] args) {

                        List<String> al = new ArrayList<String>();

                          al.add("Rohit");

                          al.add("Panjab");

                          al.add("Kamir");

                          System.out.println("My ArrayList Items: ");

                          System.out.print(al);

                          List<String> ll = new LinkedList<String>();

                          ll.add("Shobit");

                          ll.add("Raul");

                          ll.add("Ketel");

                          System.out.println("\n My LinkedList Items: ");

                          System.out.print(ll);

            }

}

قائمة الأمثلة

import java.util.HashSet;

import java.util.Set;

import java.util.TreeSet;

public class SetExample {

            public static void main(String[] args) {

                          int myList[] = {60, 70, 80, 40 };

                            Set<Integer> dispSet = new HashSet<Integer>();

                            try{

                              for(int i = 0; i<4; i++){

                                dispSet.add(myList[i]);

                              }

                              System.out.println(dispSet);

                              TreeSet<Integer> treeset = new TreeSet<Integer>(dispSet);

                              System.out.println("Sorting in Asceding order:");

                              System.out.println(treeset);

                            }

                            catch(Exception e){

                                e.printStackTrace();

                            }

            }

}
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION