Πώς να ταξινομήσετε μια συνδεδεμένη λίστα στη Java

Συγγραφέας: Monica Porter
Ημερομηνία Δημιουργίας: 18 Μάρτιος 2021
Ημερομηνία Ενημέρωσης: 20 Νοέμβριος 2024
Anonim
Java Tech Talk: Τηλεγράφημα bot σε java για 1 ώρα
Βίντεο: Java Tech Talk: Τηλεγράφημα bot σε java για 1 ώρα

Περιεχόμενο

Πώς να οργανώσετε μια συνδεδεμένη λίστα στη Java. Ένας κλειστός κατάλογος είναι ένας από τους κυριότερους τύπους δομών δεδομένων στον κόσμο του προγραμματισμού. Είναι μια οργάνωση κόμβων που περιέχει δεδομένα και αναφορές που δείχνουν στον επόμενο κόμβο. Για να ταξινομήσετε μια συνδεδεμένη λίστα στη Java, υπάρχει μια κλάση λίστας που λειτουργεί με το πλαίσιο συλλογών, το οποίο υλοποιεί αλγορίθμους ως παραγγελία.


Οδηγίες

Οργάνωση της συνδεδεμένης λίστας σε Java (εικόνα ανάκρισης από danimages από την Fotolia.com)

    Ταξινόμηση μιας συνδεδεμένης λίστας σε Java

  1. Δηλώστε τη συνδεδεμένη λίστα δημιουργώντας ένα νέο αντικείμενο LinkedList και αντιστοιχίζοντας μια μεταβλητή LinkedList. Ένα LinkedList προέρχεται από τη γενική κλάση λίστας, οπότε οποιαδήποτε μέθοδος που δέχεται μια λίστα θα γίνει επίσης αποδεκτή από το αντικείμενο LinkedList. "" LinkedList l = νέο LinkedList (); ""

  2. Προσθέστε αντικείμενα του ίδιου τύπου (όπως ακέραιοι) στη λίστα. Αυτά μπορεί να είναι αντικείμενα οποιουδήποτε είδους, αλλά για να ταξινομήσετε τη συνδεδεμένη λίστα, όλα πρέπει να είναι του ίδιου τύπου.

  3. Χρησιμοποιήστε τη μέθοδο List.addFirst για να εισαγάγετε νέα αντικείμενα στην κορυφή της λίστας, έτσι ώστε τα αντικείμενα που προσθέτετε να είναι στην αντίθετη σειρά. Εάν θέλετε να τα προσθέσετε στο τέλος της λίστας, χρησιμοποιήστε τη μέθοδο List.addLast. "list.addFirst (1), list.addFirst (3), list.addFirst (2),"


  4. Χρησιμοποιήστε ένα iterator για να επαναλάβετε τη λίστα και να το εκτυπώσετε πριν και μετά δείτε τι κάνει η μέθοδος ταξινόμησης. "" για το (iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ())}} "

    Ταξινόμηση χρησιμοποιώντας τους προεπιλεγμένους και προσαρμοσμένους συγκριτές

  1. Ταξινόμηση της λίστας με τον προεπιλεγμένο συγκριτή. Ένας συγκριτής είναι ένα αντικείμενο που συγκρίνει δύο αντικείμενα. Το προεπιλεγμένο αντικείμενο σύγκρισης χρησιμοποιεί τον μικρότερο χειριστή, οπότε ο κατάλογος ταξινομείται με αύξουσα σειρά. Για να ταξινομήσετε τη λίστα, χρησιμοποιήστε τη στατική μέθοδο Collections.sort. "" Collections.sort (λίστα) ""

  2. y) {return -1; "> Παραγγείλετε τη λίστα με μια προσαρμοσμένη σύγκριση γράφοντας μια κλάση που υλοποιεί μια διασύνδεση σύγκρισης και μεταβιβάζοντάς την σε μια παράσταση ως παραγγελία παραγγελίας Η κλάση που εφαρμόζει τον συγκριτή έχει μόνο να εφαρμόσει την απλή "public class GreaterThan εφαρμόζει τον Comparator else αν (x == y) {επιστροφή 0?} else {επιστροφή 1?}}}"


  3. Χρησιμοποιήστε την κλήση στο Collections.sort μεταφέροντας μια νέα παρουσία του GreaterThan ως δεύτερο όρισμα. Δεδομένου ότι τα αντικείμενα που είναι μεγαλύτερα θα είναι μπροστά από τα άλλα, ο κατάλογος θα ταξινομηθεί κατά φθίνουσα σειρά αντί της αύξουσας τάξης. Εναλλακτικά, εάν ταξινομήσετε μια λίστα αντικειμένων από μια προσαρμοσμένη κλάση που έχετε δακτυλογραφήσει, αυτή η κλάση μπορεί να εφαρμόσει τη Συγκριτική διεπαφή αντί να χρησιμοποιήσει τη χωριστή κλάση Comparator. "" Collections.sort (λίστα, νέα GreaterThan ()); ""

Πώς

  • Είναι προβληματικό να χρησιμοποιούμε έναν ακέραιο αριθμό για να επαναλάβουμε το κύκλωμα και τη μέθοδο List.size (). Η κατάργηση μιας κλειστής λίστας είναι μια δαπανηρή υπολογιστική λειτουργία. Όταν χρησιμοποιείτε έναν χειριστή ευρετηρίου (όπως το l [2]) όπως και σε οποιαδήποτε εντολή, η Java πρέπει να επαναλάβει τη λίστα μέχρι να φτάσει στο δείκτη 2. Για μικρές λίστες, αυτό είναι ένα πρόβλημα, ωστόσο, με κάτι μεγάλο, χρησιμοποιώντας τον χειριστή ευρετηρίου για να επαναλάβει τη μετατροπή σε κάτι που απαιτεί πολλούς πόρους.
  • Ανεξάρτητα από το πώς εφαρμόζεται το αντικείμενο List, αφού το LinkedList υλοποιεί την ίδια διεπαφή.
  • Η μέθοδος σύγκρισης θα πρέπει να επιστρέψει στο -1 εάν το arg0 είναι ταξινομημένο πριν arg1, 0 εάν είναι διατεταγμένο ισότιμα, και 1 αν το arg1 είναι ταξινομημένο πριν arg0.

Ανακοίνωση

  • Το αντικείμενο iterator εξασφαλίζει ότι κάθε κόμβος της λίστας επισκέπτεται μόνο μία φορά. Αυτό είναι σημαντικό να θυμόμαστε, αφού η επίσκεψή μας χωρίς ανάγκη θα μπορούσε να καταχραστεί τις δομές δεδομένων σε σημείο που το πρόγραμμα παρουσιάζει δυσλειτουργίες.

Η αύξηση των παιδιών είναι ένα καθήκον που συνεπάγεται μια σειρά προκλήσεων. Πολλοί πιστεύουν ότι διδάσκοντας τον κόσμο πώς λειτουργεί ένα παιδί και ότι οι έφηβοι είναι οι κύριες δυσκολίες αυτού του τ...

Τα παιδιά με αυτισμό χρειάζονται μια ποικιλία καθημερινών δραστηριοτήτων, όπως άλλα παιδιά. Οι δραστηριότητες για αυτιστικά παιδιά πρέπει να είναι για διασκέδαση και για αναπτυξιακές ανάγκες. Αυτός εί...

Σας Συνιστούμε