JavaRush /בלוג Java /Random-HE /הפסקת קפה מס' 136. מיין מערך בסדר עולה או יורד באמצעות Ar...

הפסקת קפה מס' 136. מיין מערך בסדר עולה או יורד באמצעות Arrays.sort(). מה ההבדל בין ממשק List ו-Set?

פורסם בקבוצה

מיין מערך בסדר עולה או יורד באמצעות Arrays.sort()

מקור: FreeCodeCamp עם פוסט זה, תלמד כיצד למיין מערך בסדר עולה או יורד ב-Java. הפסקת קפה מס' 136.  מיין מערך בסדר עולה או יורד באמצעות Arrays.sort().  מה ההבדל בין ממשק List ו-Set?  - 1ב-Java, אנו משתמשים במערכים כדי לאחסן קבוצה של משתנים (עם אותו סוג נתונים) במשתנה בודד. אבל לפעמים הערכים המאוחסנים במערך מופיעים בסדר אקראי. הודות למחלקה Arrays ב-Java, יש לנו כמה דרכים לתפעל מערכים, כולל מיון שלהם. אחת השיטות שבהן נשתמש מהמחלקה Arrays היא השיטה sort() , שממיינת את המערך בסדר עולה. כדי למיין מערך בסדר יורד, השתמש בשיטת reverseOrder() של המחלקה Collections ב-Java.

כיצד למיין מערך בסדר עולה ב-Java באמצעות Arrays.sort()

הנה דוגמה לאופן שבו אנו יכולים להשתמש בשיטת 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 }; . כדי למיין את המערך הזה בסדר עולה, העברנו את המערך כפרמטר לשיטת sort() : Arrays.sort(arr); . שימו לב שהמחלקה Arrays נכתבת תחילה לפני הגישה לשיטת sort() באמצעות סימון נקודות. לבסוף, יצרנו לולאה והדפסנו את המערך לקונסולה. התוצאה היא מערך ממוין: 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,
        }
    }
}
הדבר הראשון שעשינו היה לייבא את המחלקות Arrays and Collections מכיוון שאנו נשתמש בשיטות המסופקות על ידי המחלקות הללו. לאחר מכן יצרנו מערך של מספרים בסדר אקראי: שלם[] arr = { 5, 2, 1, 8, 10 }; . כפי שאתה יכול לראות, השתמשנו ב- Integer[] במקום int[] כמו בדוגמה הקודמת. אחרת תתרחש שגיאה. כדי למיין את המערך בסדר יורד, עשינו זאת: Arrays.sort(arr, Collections.reverseOrder()); . הפרמטר הראשון הוא מערך arr אשר ימוין בסדר עולה. הפרמטר השני, Collections.reverseOrder() , יהפוך את הסדר של המערך הממוין כך שיהיה בסדר יורד. כאשר הוא עובר בלולאה ומודפס, המערך ייראה כך: 10, 8, 5, 2, 1 .

סיכום

במאמר זה דנו על מיון מערכים ב-Java - כיצד ניתן למיין אותם בסדר עולה או יורד. לשם כך, נוכל להשתמש בשיטת sort() , אליה ניתן לגשת מהמחלקה Arrays . השיטה sort() לוקחת מערך כדי למיין כפרמטר. כדי למיין את המערך בסדר יורד, השתמשנו בשיטת reverseOrder() שסופקה על ידי המחלקה Collections. הוא מועבר כפרמטר השני לשיטת sort() כך שניתן יהיה לסדר מחדש את המערך הממוין בסדר יורד.

אוסף Java. מה ההבדל בין ממשק List ו-Set?

מקור: Rrtutors List ו-Set הם ממשקי Java להרחבת ממשק האוסף . בפוסט זה, נבחן את ההבדלים העיקריים בין השניים, כמו גם כיצד ניתן להשתמש בהם.

הבדלים בין ממשקי Set ו-List ב-Java

הבה נגדיר את ההבדלים העיקריים בין ממשקי List ו- Set בהתבסס על הפרמטרים המרכזיים הבאים:

יישום

List מיישמת ArrayLists , ואילו HashSet מיישמת Set .

יצירת אינדקס

אתה יכול להשתמש ב- ListIterator כדי לעבור גם קדימה וגם אחורה דרך רשימה , אבל לא דרך סט . השתמש במקום זאת באיטרטור (שעובד גם עם List וגם עם Set ).

להזמין

ממשק הסט אינו תומך בשום סדר הגדרה מסוים. אוסף מסוג Set כבר ממוין לפי כלל משלו ולא ניתן למיין אותו סתם כך. רשימה היא רשימה מסודרת. אובייקטים מאוחסנים בסדר שהם נוספו לרשימה. ניתן לגשת לרכיבי רשימה באמצעות אינדקס.

אובייקט ריק

לרשימה אין הגבלות ותומך בהוספת ערכי Null, בעוד ש- Set מאפשר לכל היותר ערך Null אחד.

כפילויות

רשימה יכולה להכיל כפילויות, אבל סט לא יכול. הסט אינו מאפשר רכיבים כפולים מכיוון שכל האלמנטים שלו חייבים להיות ייחודיים. אם תכניס רכיב משוכפל ל- Set , הערך הקיים ידרוס.

מתי כדאי להשתמש ברשימה ובסט?

סט הוא הבחירה הטובה ביותר כאשר אתה רק צריך לאחסן ערכים ייחודיים, שכן לשם כך הוא נועד. אבל אם אתה רוצה לשמר את סדר ההכנסה למרות הכפילות, List היא הבחירה הטובה ביותר .

סט דוגמה

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