how sort an array java tutorial with examples
Αυτό το σεμινάριο θα εξηγήσει διάφορες μεθόδους για να ταξινομήσετε μια σειρά στην Java με αύξουσα, φθίνουσα και αλφαβητική σειρά με τη βοήθεια απλών παραδειγμάτων:
Η ταξινόμηση τακτοποιεί δεδομένα με συγκεκριμένη σειρά. Τα δεδομένα του υπολογιστή αποτελούνται από εγγραφές που αποτελούνται από ένα ή περισσότερα πεδία. Για να χρησιμοποιήσετε αποτελεσματικά τα δεδομένα και να εκτελέσετε διάφορες λειτουργίες όπως αναζήτηση, πρόσβαση κ.λπ., συνιστάται αυτά τα δεδομένα να είναι διατεταγμένα με κάποια συγκεκριμένη σειρά.
Για παράδειγμα, εάν υπάρχουν πολλές εγγραφές δεδομένων μαθητών, τότε θα μπορούσαμε να τακτοποιήσουμε αυτά τα δεδομένα ανάλογα με το αναγνωριστικό ταυτότητας ή το όνομα του μαθητή. Αυτό ονομάζεται ταξινόμηση. Ως εκ τούτου, η ταξινόμηση είναι απαραίτητη για τη χρήση των δεδομένων πιο αποτελεσματικά και εύκολα.
=> Επισκεφτείτε τη σειρά εκπαιδευτικών εκμάθησης Java εδώ
Στην Java, οι πίνακες περιέχουν δεδομένα και πρέπει να ταξινομήσουμε αυτά τα δεδομένα για να τακτοποιήσουμε σύμφωνα με ορισμένα κριτήρια. Σε αυτό το σεμινάριο, θα συζητήσουμε λεπτομερώς την ταξινόμηση των συστοιχιών μαζί με απλά παραδείγματα.
Τι θα μάθετε:
Πώς να ταξινομήσετε μια σειρά στην Java
Η Java παρέχει τις ακόλουθες μεθόδους για να ταξινομήσετε τους πίνακες.
- Χρήση για βρόχους: Μπορείτε να χρησιμοποιήσετε για βρόχους για να διασχίσετε τη συστοιχία και να συγκρίνετε παρακείμενα στοιχεία ενώ διασχίζετε και τακτοποιείτε.
- Χρησιμοποιώντας τη μέθοδο ταξινόμησης: Η κλάση Arrays του πακέτου «java.util» παρέχει τη μέθοδο ταξινόμησης που παίρνει έναν πίνακα ως όρισμα και ταξινομεί τον πίνακα. Αυτή είναι μια μέθοδος άμεσης ταξινόμησης και μπορείτε να ταξινομήσετε έναν πίνακα με μία μόνο κλήση μεθόδου.
Ας διερευνήσουμε λεπτομερώς και τις δύο αυτές μεθόδους.
Χρησιμοποιώντας βρόχους
Μπορείτε να ταξινομήσετε τον πίνακα χρησιμοποιώντας μη αυτόματη ταξινόμηση όπως χρησιμοποιώντας για βρόχους. Αυτό που μπορείτε να κάνετε είναι να χρησιμοποιήσετε δύο για βρόχους, ένα για να διασχίσετε τη συστοιχία από την αρχή και μια άλλη για βρόχο εντός της εξωτερικής για να διασχίσετε το επόμενο στοιχείο.
Στο σώμα, συγκρίνετε τα παρακείμενα στοιχεία και ανταλλάξτε εάν δεν είναι σωστά. Μπορείτε να χρησιμοποιήσετε μια προσωρινή μεταβλητή για την ανταλλαγή στοιχείων.
Το παρακάτω πρόγραμμα δείχνει αυτήν την προσέγγιση.
public class Main { public static void main(String() args) { //define original array int () intArray = new int () {52,45,32,64,12,87,78,98,23,7}; int temp = 0; //print original array System.out.println('Original array: '); for (int i = 0; i Παραγωγή:

Η ταξινόμηση με χρήση βρόχου μπορεί να είναι αποτελεσματική όταν εμπλέκονται μικρότερες συστοιχίες. Μπορεί να γίνει περίπλοκο όταν αυξάνεται το μέγεθος του πίνακα.
Μέθοδος ταξινόμησης
Η μέθοδος ταξινόμησης που παρέχεται από την τάξη «java.util.Arrays» είναι ένας πολύ απλός και πιο γρήγορος τρόπος για να ταξινομήσετε έναν πίνακα. Αυτή η μέθοδος μπορεί να ταξινομήσει στοιχεία πρωτόγονων τύπων καθώς και αντικείμενα που εφαρμόζουν τη συγκρίσιμη διεπαφή.
Όταν τα στοιχεία πρωτόγονου τύπου ταξινομούνται, η μέθοδος ταξινόμησης χρησιμοποιεί γρήγορη ταξινόμηση. Όταν τα αντικείμενα ταξινομούνται, χρησιμοποιείται επαναληπτικό mergesort.
Το γενικό πρωτότυπο της μεθόδου ταξινόμησης έχει ως εξής:
Arrays.sort (T() t_arr);
Εδώ, T () είναι ο τύπος δεδομένων και t_arr είναι ο πίνακας που πρόκειται να ταξινομηθεί.
Το παραπάνω πρωτότυπο λειτουργεί για συστοιχίες που εφαρμόζουν συγκρίσιμη διεπαφή.
Για πίνακες προσαρμοσμένων αντικειμένων, μπορείτε να χρησιμοποιήσετε μια άλλη παραλλαγή του Arrays.sort όπως δίνεται παρακάτω .
Arrays.sort(T() t_arr, Comparator.c);
Έτσι, για τις συστοιχίες που δεν εφαρμόζουν συγκρίσιμη διεπαφή, ένας συγκριτής πρέπει να περάσει στη λειτουργία ταξινόμησης. Σημειώστε ότι από προεπιλογή η μέθοδος ταξινόμησης ταξινομεί τον πίνακα σε αύξουσα σειρά.
Ας δούμε μερικά συγκεκριμένα παραδείγματα ταξινόμησης πίνακα.
Ταξινόμηση αριθμητικής σειράς με αύξουσα σειρά
Η πρώτη επίδειξη είναι η ταξινόμηση του πίνακα αριθμών σε αύξουσα σειρά χρησιμοποιώντας μεθόδους ταξινόμησης. Όπως αναφέρθηκε ήδη, από προεπιλογή η μέθοδος ταξινόμησης ταξινομεί τον πίνακα σε αύξουσα σειρά. Έτσι, για να ταξινομήσετε έναν αριθμητικό πίνακα σε αύξουσα σειρά, απλά πρέπει να καλέσετε τη μέθοδο στον εν λόγω πίνακα.
Δίνεται παρακάτω ένα παράδειγμα για να το δείξετε αυτό.
πώς να γράφετε ιστορίες χρηστών και κριτήρια αποδοχής
import java.util.Arrays; public class Main { public static void main(String() args) { //define an array int() intArray = {52, 45, 32, 64, 12, 87, 78, 98, 23, 7}; System.out.printf('Original Array : %s', Arrays.toString(intArray)); Arrays.sort(intArray); System.out.printf('
Sorted Array : %s', Arrays.toString(intArray)); } }
Παραγωγή:

Στο παραπάνω πρόγραμμα, μόνο μία κλήση συνάρτησης ταξινομεί τον πίνακα σε αύξουσα σειρά.
Ταξινόμηση αριθμητικής σειράς με φθίνουσα σειρά
Η επόμενη εργασία είναι να ταξινομήσετε τον αριθμητικό πίνακα σε φθίνουσα σειρά. Για να το κάνετε αυτό, η μέθοδος ταξινόμησης παρέχεται με ένα δεύτερο όρισμα «Συλλογές.reverseOrder ()» που ταξινομεί έναν πίνακα σε φθίνουσα σειρά.
Το πρόγραμμα για ταξινόμηση πίνακα σε φθίνουσα σειρά δίνεται παρακάτω.
import java.util.Arrays; import java.util.Collections; public class Main { public static void main(String() args) { //Collections.reverseOrder do not work for primitive Types //define an array with Integer Integer() IntArray = {52, 45, 32, 64, 12, 87, 78, 98, 23, 7}; //print original array System.out.printf('Original Array: %s', Arrays.toString(IntArray)); // Sorts IntArray in descending order Arrays.sort(IntArray, Collections.reverseOrder()); //print sorted array System.out.printf('
Sorted Array: %s', Arrays.toString(IntArray)); } }
Παραγωγή:

Ταξινόμηση σειράς συμβολοσειράς με αλφαβητική σειρά
Ακριβώς όπως οι αριθμητικοί πίνακες, μπορείτε επίσης να ταξινομήσετε έναν πίνακα συμβολοσειρών χρησιμοποιώντας τη λειτουργία ταξινόμησης. Όταν περνάτε τον πίνακα συμβολοσειρών, ο πίνακας ταξινομείται με αύξουσα αλφαβητική σειρά. Για να ταξινομήσετε τον πίνακα με φθίνουσα αλφαβητική σειρά, θα πρέπει να δώσετε τη μέθοδο διεπαφής Συλλογές reverseOrder () ως το δεύτερο όρισμα.
Το ακόλουθο πρόγραμμα δείχνει την ταξινόμηση ενός πίνακα συμβολοσειρών σε αύξουσα και φθίνουσα σειρά.
import java.util.Arrays; import java.util.Collections; public class Main { public static void main(String() args) { String str_Array() = {'Java', 'Python', 'Perl', 'C++', 'C#', 'AS400'}; System.out.printf('Original Array:
%s
', Arrays.toString(str_Array)); // Sorts str_Array in ascending order Arrays.sort(str_Array); System.out.printf('Array sorted in ascending order:
%s
', Arrays.toString(str_Array)); // Sorts str_Array in descending order Arrays.sort(str_Array, Collections.reverseOrder()); System.out.printf('Array sorted in descending order :
%s
', Arrays.toString(str_Array)); } }
Παραγωγή:

Η έξοδος του προγράμματος δείχνει μια ταξινομημένη σειρά συμβολοσειρών τόσο σε αύξουσα όσο και σε φθίνουσα σειρά.
Συχνές Ερωτήσεις
Q # 1) Τι είναι η Ταξινόμηση στην Java;
Απάντηση: Η ταξινόμηση αναφέρεται στην τακτοποίηση δεδομένων με αλφαβητική ή αριθμητική σειρά.
Q # 2) Ποια τεχνική ταξινόμησης χρησιμοποιείται στο Arrays sort σε Java;
Απάντηση: Οι πίνακες χρησιμοποιούν Quicksort διπλού στροφέα για πρωτόγονους τύπους δεδομένων και Mergesort για ταξινόμηση αντικειμένων.
Q # 3) Τι είναι το Comparator στην Java;
Απάντηση: Η διεπαφή σύγκρισης είναι μέρος του πακέτου java.util και χρησιμοποιείται για τη διευθέτηση των αντικειμένων που ορίζονται από το χρήστη. Η διεπαφή σύγκρισης χρησιμοποιείται κυρίως κατά τη διαλογή αντικειμένων χρησιμοποιώντας τη μέθοδο ταξινόμησης.
Q # 4) Ποια είναι η χρήση της Ταξινόμησης στην Java;
Απάντηση: Η ταξινόμηση είναι μια τεχνική τακτοποίησης δεδομένων με συγκεκριμένη σειρά. Η ταξινόμηση των δεδομένων είναι χρήσιμη καθώς μπορούμε να αναζητήσουμε δεδομένα πιο αποτελεσματικά και γρήγορα. Μπορούμε επίσης να πραγματοποιήσουμε εύκολα άλλες λειτουργίες όπως πρόσβαση, αποθήκευση κ.λπ. στα παραγγελθέντα δεδομένα.
Ε # 5) Είναι δυνατή η ταξινόμηση λιστών στην Java;
Απάντηση: Ναί. Οι λίστες αποτελούν μέρος της διεπαφής συλλογών στην Java και μπορούμε να χρησιμοποιήσουμε τη μέθοδο ταξινόμησης () της διεπαφής συλλογών για να ταξινομήσουμε τη λίστα.
συμπέρασμα
Αυτό ολοκληρώνει τη συζήτησή μας για την ταξινόμηση των πινάκων στην Java. Έχουμε συζητήσει τις διάφορες μεθόδους για την ταξινόμηση συστοιχιών στην Java, συμπεριλαμβανομένων εκείνων που παρέχονται από πακέτα Java, καθώς και την παραδοσιακή μέθοδο χρήσης βρόχων «για» για την ταξινόμηση στοιχείων συστοιχίας ένα προς ένα.
Είδαμε πώς να ταξινομήσουμε έναν πίνακα σε αύξουσα και φθίνουσα σειρά. Στη συνέχεια, μάθαμε πώς να ταξινομήσουμε έναν πίνακα συμβολοσειρών με αλφαβητική σειρά.
Θα συνεχίσουμε να διερευνούμε περισσότερα θέματα σχετικά με πίνακες στην Java στα επόμενα σεμινάρια μας.
=> Δείτε τους πλήρεις οδηγούς Java για όλους εδώ
Συνιστώμενη ανάγνωση
- Εκμάθηση μήκους σειράς Java με παραδείγματα κώδικα
- Reverse An Array In Java - 3 μέθοδοι με παραδείγματα
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Εκμάθηση Java Reflection με παραδείγματα
- Java Generic Array - Πώς να προσομοιώσετε γενικές συστοιχίες στην Java;
- Java 'αυτό' Λέξη-κλειδί: Εκμάθηση με παραδείγματα κώδικα
- Πώς να περάσετε / επιστρέψετε μια σειρά στην Java
- Java Array - Πώς να εκτυπώσετε στοιχεία ενός πίνακα στην Java;