Διαφορά μεταξύ του συνόλου και της λίστας

Διαφορά μεταξύ λίστας συστοιχιών και συνδεδεμένης λίστας



Πριν από εμάς παίρνω στις πραγματικές διαφορές, ας μάθουμε τι είναι πραγματικά;



Τι είναι ένα σετ;

Έχουμε συναντήσει την έννοια του Σετ στα μαθηματικά και το Σετ εδώ λίγο πολύ σημαίνει το ίδιο. Ναι, είναι μια συλλογή στοιχείων και στις περισσότερες περιπτώσεις, μια συλλογή παρόμοιων στοιχείων. Μπορείτε να δοκιμάσετε να προσθέσετε αυτά τα στοιχεία σε ένα σύνολο και δοκιμάστε να εκτυπώσετε για να κατανοήσετε, πώς είναι πραγματικά αποθηκευμένο.

Εισαγωγή σε ένα σύνολο:20, 50, 10, 30.



Είναι πραγματικά αποθηκευμένο σε ένα σετ ως10, 20, 30, 50.

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

Σε όρους υπολογιστών, το Σετ περιλαμβάνει λίγες πρόσθετες ιδιότητες, όπως Μέθοδοι και Κληρονομικότητα. Οι μέθοδοι είναι ακριβώς όπως οι συναρτήσεις και κάνουν συγκεκριμένες εργασίες, όπως προσθήκη, αφαίρεση ή επανάληψη μέσω του συνόλου στοιχείων. Οι περισσότεροι από εμάς είναι γνωστοί για τον όρο Κληρονομικότητα και αυτό σημαίνει το ίδιο εδώ. Ναι, μπορούμε να κληρονομήσουμε μια μέθοδο από τη συλλογή της, έτσι ώστε να μπορεί να χρησιμοποιηθεί με το Set Interface. Και πάλι μιλάμε για έναν νέο όρο, δηλαδή το Set Interface, και δεν είναι τίποτα περισσότερο από ολόκληρο το σύνολο στοιχείων, συμπεριλαμβανομένων των μεθόδων.



Πώς να το εφαρμόσετε;

Για καλύτερη κατανόηση, έχουμε αντιπροσωπεύσει ένα σύνολο με τη σύνταξή του. Από την παρακάτω σύνταξη, θα μπορούσατε να προσδιορίσετε τους διαφορετικούς τύπους Set όπως το HashSet και το TreeSet.

εισαγωγή java.util. *;

δημόσια τάξη Setexample {

δημόσιο στατικός άκυρο main (String args []) {

int count [] = {34, 22,10,60,30,22} {25, 17, 76, 12, 88, 57};

Set set = νέο HashSet ();

προσπαθήστε {

για (int i = 0; i< 5; i++) {

set.add (μέτρηση [i]);

}

System.out.println (σύνολο);

TreeSet sortedSeteg = νέο TreeSet (σετ);

System.out.println ('Εδώ έχουμε την ταξινομημένη έξοδο:');

System.out.println (sortedSeteg);

System.out.println ('Κοιτάξτε το πρώτο στοιχείο:' + (Integer) sortedSet.first ());

System.out.println ('Κοιτάξτε το τελευταίο στοιχείο:' + (Integer) sortedSet.last ());

}

αλίευση (Εξαίρεση ε) {}

}

}

Η έξοδος των παραπάνω κώδικας είναι όπως ακολουθεί.

[25, 17, 76, 12, 88]
Εδώ έχουμε την ταξινομημένη έξοδο:
[12, 17, 25, 76, 88]
Κοιτάξτε το πρώτο στοιχείο: 12
Κοιτάξτε το τελευταίο στοιχείο: 88

Τι είναι η λίστα;

Μια λίστα επεκτείνει τη Συλλογή παρόμοια με το πώς έκανε ένα Σετ, αλλά διατηρεί τη σειρά εισαγωγής. Προσπαθείτε να προσθέσετε τα ακόλουθα ονόματα σε μια λίστα και να δείτε πώς προστίθεται σε αυτήν.

Η εισαγωγή σε μια λίστα:John, Nancy, Mary, Alice.

Πώς αποθηκεύεται σε μια λίστα:John, Nancy, Mary, Alice.

Απλώς παρατηρήστε τη σειρά με την οποία εισάγονται. Μπορείτε να αναγνωρίσετε ότι το 'John' είναι το πρώτο στοιχείο στην είσοδο καθώς και στην έξοδο και ακολουθείται από την ίδια σειρά με την οποία εισάγονται τα ονόματα. Μπορούμε ακόμη και να το θεωρήσουμε μία από τις σημαντικότερες ιδιότητες του List.

Πώς να το εφαρμόσετε;

Ας δούμε μερικές από τις μεθόδους του List όπως ArrayList και LinkedList στην παρακάτω σύνταξη.

εισαγωγή java.util. *;
Συλλογές δημόσιας τάξης

Δημόσιο στατικό κενό (String [] args) {

Λίστα a1 = νέο ArrayList ();
a1.add ('John');
a1.add ('Nancy');
a1.add ('Mary');
a1.add ('Αλίκη');
System.out.println ('Τα στοιχεία ArrayList είναι');
System.out.print (' t' + a1);

Λίστα l1 = νέα LinkedList ();
l1.add ('Silvia');
l1.add ('Arjun');
l1.add ('Deepika');
l1.add ('Susan');
System.out.println ();
System.out.println ('Στοιχεία LinkedList είναι');
System.out.print (' t' + l1); }}

Η έξοδος της παραπάνω σύνταξης έχει ως εξής.

Τα στοιχεία ArrayList είναι

[John, Nancy, Mary, Alice]

Στοιχεία LinkedList

[Silvia, Arjun, Deepika, Susan]

Είναι πολύ σαφές από τον παραπάνω κώδικα ότι τόσο το ArrayList όσο και το LinkedList διατηρούν τη σειρά εισαγωγής.

Πώς διαφέρουν;

  • Μέθοδοι και περιγραφές:

Το Σετ και η Λίστα έχει τις δικές του μεθόδους και ας δούμε μερικές από αυτές εδώ.

ΝΟ Σετ - Μέθοδοι Λίστα - Μέθοδοι
1. Προσθήκη()- Είναι να προσθέσετε αντικείμενα σε μια συλλογή. void add (int index, Object obj) -Προσθέτει το αντικείμενο «obj» στο καθορισμένο «ευρετήριο» της λίστας επίκλησης και διασφαλίζει ότι κανένα στοιχείο δεν αντικαθίσταται μετατοπίζοντας τα προηγούμενα στοιχεία.
2. Σαφή() -Είναι να αφαιρέσετε αντικείμενα από μια συλλογή. boolean addAll (int ευρετήριο, Συλλογή γ) -Προσθέτει ολόκληρη τη συλλογή «c» στη λίστα επίκλησης και στον καθορισμένο «ευρετήριο». Εξασφαλίζει επίσης ότι κανένα στοιχείο δεν αντικαθίσταται. Μπορούμε επίσης να ελέγξουμε την ορθότητα της λειτουργίας του εξετάζοντας την τιμή επιστροφής. Επιστρέφει 'true' εάν η αλλαγή είναι επιτυχής διαφορετικά, επιστρέφει μια τιμή 'false'.
3. περιέχει () -Πρέπει να ελέγξετε εάν το σύνολο περιέχει ένα συγκεκριμένο αντικείμενο σε αυτό. Επιστρέφει μια τιμή 'true' εάν το αντικείμενο είναι παρόν στο Σετ. Λήψη αντικειμένου (int index) -Επιστρέφει το στοιχείο ή το αντικείμενο στο καθορισμένο «ευρετήριο».
Τέσσερις. είναι άδειο()- Πρέπει να προσδιοριστεί εάν η συλλογή βοηθά καθώς δεν υπάρχουν στοιχεία σε αυτήν. Επιστρέφει μια τιμή «true» εάν δεν υπάρχει στοιχείο. int lastIndexOf (αντικείμενο obj) -Λειτουργεί παρόμοιο με το αντίστροφο τουευρετήριοOf ()Μέθοδος. Επιστρέφει την τελευταία εμφάνιση του καθορισμένου αντικειμένου «obj» και η τιμή «1» επιστρέφεται εάν δεν υπάρχει τέτοιο αντικείμενο στη λίστα. Ως εκ τούτου, μπορεί επίσης να χρησιμοποιηθεί ωςπεριέχει ()Μέθοδος του Set Interface.
6. αφαιρώ()- Είναι να αφαιρέσετε ένα στοιχείο από μια συλλογή, καθορίζοντάς το ως παράμετρο στη μέθοδο. ListIterator listIterator () -Επιστρέφει έναν επαναληπτικό στο αρχικό ευρετήριο της λίστας.
7. Μέγεθος()- Πρέπει να μετράει τον αριθμό αντικειμένων ή στοιχείων που έχει μια συλλογή. ListIterator listIterator (int ευρετήριο) -Βοηθά στην επανάληψη μέσω της Λίστα επίκλησης ξεκινώντας από το καθορισμένο «ευρετήριο».
8. - Κατάργηση αντικειμένου (int index) -Διαγράφει το αντικείμενο στο καθορισμένο «ευρετήριο» και επιστρέφει το διαγραμμένο στοιχείο ως αποτέλεσμα. Επίσης, μειώνει τους δείκτες λίστας που προκύπτουν ώστε να αντικατοπτρίζουν τη διαγραφή.
9. - Σύνολο αντικειμένων (int index, Object obj) -Είναι να αντιστοιχίσετε το αντικείμενο «obj» στη λίστα επίκλησης στο καθορισμένο «ευρετήριο».
10. - Λίστα λίστας (int start, int end) -Πρέπει να συμπεριλάβετε τα αντικείμενα από το ευρετήριο «έναρξη» στο ευρετήριο «τέλος» στη λίστα που επικαλέστηκε τη μέθοδο.
  • Συντήρηση εντολής εισαγωγής:

Το Σετ δεν διατηρεί ποτέ τη σειρά των στοιχείων στα οποία εισάγονται σε αυτό, ενώ η Λίστα το διατηρεί. Υπάρχει μια εξαίρεση σε αυτόν τον κανόνα για το LinkedHashSet καθώς διατηρεί τη σειρά εισαγωγής, αλλά το άλλο σετ όπως Το HashSet και το TreeSet ταξινομεί τα στοιχεία πριν το αποθηκεύσετε. Το ίδιο περιγράφεται με παραδείγματα παρακάτω.

Σειρά Είσοδος: Cat, Doll, Apple.

Αποθηκεύτηκε ως: Apple, Cat, Doll.

Είσοδος λίστας: Cat, Doll, Apple.

Αποθηκεύτηκε ως: Cat, Doll, Apple.

  • Η παρουσία διπλότυπων:

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

Ρύθμιση εισόδου: 10, 20, 20, 50.

Αποθηκεύτηκε ως: 10, 20, 50.

Είσοδος λίστας: 10, 20, 20, 50.

Αποθηκεύτηκε ως: 10, 20, 20, 50.

  • Μηδενικές τιμές:

Ένα σύνολο μπορεί να έχει μόνο μία μηδενική τιμή ενώ μια λίστα μπορεί να έχει περισσότερες από μία μηδενικές τιμές και δεν περιορίζεται σε κανέναν αριθμό.

Ορισμός εισόδου: null, null, Man, Dog, Plane.

Αποθηκεύτηκε ως: null, Dog, Man, Plane.

Είσοδος λίστας: null, null, Man, Dog, Plane.

Αποθηκεύτηκε ως: null, null, Man, Dog, Plane.

  • Χρήση του Iterator & ListIterator:

Η μέθοδος Iterator λειτουργεί καλά με το Set και το List, ενώ η μέθοδος ListIterator λειτουργεί μόνο με το List. Το ListIterator μπορεί να χρησιμοποιηθεί για διασταύρωση προς τα εμπρός και προς τα πίσω μέσω της λίστας.

  • Η παρουσία του Legacy Class:

Το σύνολο δεν έχει κλάση παλαιού τύπου, ενώ η διεπαφή λίστας έχει παλαιού τύπου που ονομάζεται «διάνυσμα». Ένας φορέας χρησιμοποιεί τη διεπαφή λίστας και επομένως διατηρεί τη σειρά εισαγωγής. Λόγω των προσπαθειών συγχρονισμού, η απόδοση του διανύσματος σε προσθήκες, διαγραφές και ενημερώσεις είναι λίγο πιο αργή.

  • Εφαρμογές:

Λίγες από τις εφαρμογές Set είναι HashSet, LinkedHashSet και TreeSet. Λίγες από τις εφαρμογές του List περιλαμβάνουν ArrayList και LinkedList.

Πότε να χρησιμοποιήσετε το Set & List;

Η χρήση του Set and List εξαρτάται αποκλειστικά από την απαίτηση διατήρησης της εντολής εισαγωγής. Όπως μάθαμε ότι ένα Σετ δεν διατηρεί ποτέ τη σειρά εισαγωγής, μπορεί να χρησιμοποιηθεί όταν η παραγγελία είναι μικρότερης σημασίας. Με παρόμοιο τρόπο, χρησιμοποιήστε τη λίστα όταν χρειάζεται να διατηρήσετε και την ακολουθία εισαγωγής.

Διαφορές σε μορφή πίνακα:

ΝΟ Διαφορές σε Σειρά Λίστα
1. Εντολή εισαγωγής Διατηρεί τη σειρά εισαγωγής. Το πρώτο παρεμβάλλεται παραμένει στην πρώτη θέση και ούτω καθεξής ανεξάρτητα από την αξία του. Δεν διατηρεί ποτέ τη σειρά εισαγωγής.
2. Μέθοδοι Χρησιμοποιεί τις μεθόδους όπως add (), clear (), περιέχει (), isEmpty (), remove () και size (). Χρησιμοποιεί τις μεθόδους όπως add (), addAll (), get (), lastIndexOf (), ListIterator () with or without parameter, remove (), set () και subList ().
3. Αντίγραφα Ποτέ δεν επιτρέπει διπλότυπα και στην περίπτωση τέτοιων εμφανίσεων, η τιμή αντικαθίσταται. Επιτρέπει διπλότυπα.
Τέσσερις. Μηδενικές τιμές Μπορεί να έχει μόνο μία μηδενική τιμή στο μέγιστο. Μπορεί να έχει οποιοδήποτε αριθμό μηδενικών τιμών.
5. Χρήση του Iterator () & listIterator () Χρησιμοποιεί μόνο τον επαναληπτικό της μεθόδου (). Χρησιμοποιεί τόσο το iterator () όσο και το listIterator ().
6. Παρουσία του Legacy Class Δεν υπάρχει τάξη παλαιού τύπου. Έχει ως κλάση Legacy που ονομάζεται διάνυσμα.
7. Εφαρμογές Λίγες από τις εφαρμογές διεπαφής Set είναι HashSet, LinkedHashSet και Tree Set. Λίγες από τις εφαρμογές διεπαφής λίστας είναι LinkedList και ArrayList.

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

Δημοφιλείς Αναρτήσεις

Διαφορά μεταξύ Nokia N8 και Motorola Milestone

Nokia N8 vs Motorola Milestone Τα Nokia N8 και Motorola είναι δύο smartphone που είναι πολύ διαφορετικά σε ορισμένες πτυχές. Μια σημαντική διαφορά μεταξύ των δύο

Διαφορά μεταξύ GDDR3 και DDR3

Η μνήμη GDDR3 vs DDR3 είναι ένα κρίσιμο στοιχείο σε οποιοδήποτε σύστημα υπολογιστή. Σε έναν τυπικό υπολογιστή, χρησιμοποιούνται πολλοί τύποι μνήμης. Οι δύο τύποι μνήμης

Διαφορά μεταξύ λειτουργίας και μέσης τιμής

Τρόπος εναντίον Μεσαίου Πάντα διδάχθηκε σε μαθήματα μαθηματικών σε όλο τον κόσμο ότι ο ευκολότερος τρόπος για να αναλύσετε μια έρευνα είναι να προσδιορίσετε τη μέση τιμή, τη λειτουργία και τη διάμεση

Διαφορά μεταξύ Κύπελλο UEFA και Champions League

Κύπελλο UEFA vs Champions League Το Κύπελλο UEFA και το Champions League συνδέονται με το ποδόσφαιρο στην Ευρώπη. Διοικούνται από την Ένωση του ευρωπαϊκού ποδοσφαίρου

Διαφορά μεταξύ FCFF και FCFE

FCFF εναντίον FCFE Το FCF είναι ένα ακρωνύμιο στα εταιρικά χρηματοοικονομικά που αναφέρεται στον όρο «Δωρεάν Ταμειακές Ροές». Δωρεάν ταμειακή ροή είναι η ταμειακή ροή που διατίθεται για διανομή μεταξύ

Διαφορά μεταξύ Hotmail και Live

Hotmail vs Live Hotmail είναι το πιο συχνά αναφερόμενο όνομα αυτού που είναι στην πραγματικότητα το Windows Live Hotmail. Είναι μια δωρεάν υπηρεσία e-mail από τη Microsoft, και μέρος της