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

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



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



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

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



Εισαγωγή σε ένα σύνολο: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.

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

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

Τα ζώνη μαγιό είναι η πιο καλοκαιρινή τάση της Άνοιξης 2018

Αξεσουάρ μαγιό σας; Είναι πράγμα τώρα. Βρες εδώ το μαγιό με ζώνη που λείπει η καλοκαιρινή γκαρνταρόμπα σου.

Διαφορά μεταξύ αδιαβατικού και ισεντροπικού

Adiabatic εναντίον Isentropic Ο όρος adiabatic είναι ελληνικής προέλευσης, οπότε αν μεταφραστεί σημαίνει γενικά αδιαπέραστο. Έτσι, είναι ένα από τα πιο σημαντικά

Τα κλασικά Penny Loafers επανεφευρίσκονται για το φθινόπωρο: 15 νέοι τρόποι να τα φορέσετε

Είτε ετοιμάζεστε για ένα εξάμηνο που περάσατε σε αίθουσες διαλέξεων είτε έχασες μεγάλη ματιά στον τρόπο ζωής των φοιτητών, τα φλουριά-ένα κλασικό στο σχολείο-θα πρέπει να βρίσκονται ψηλά στη λίστα των φθινοπωρινών αγορών σας. Στυλ τους με pencil φούστες για πιο κλασική εμφάνιση ή boyfriend τζιν για ένα ιδιόμορφο casual ντύσιμο. Απλώς δείτε αυτά τα 15 κομψά κορίτσια και θα εμπνευστείτε αμέσως να επενδύσετε σε αυτό το αγαπημένο φθινόπωρο. Αλλά πριν το κάνετε, εδώ είναι ένα διασκεδαστικό γεγονός σχετικά με τα φλουριά: Γνωρίζατε ότι τα διαμερίσματα πήραν το όνομά τους όταν οι μαμάδες στη δεκαετία του 1900 χρειάζονταν ένα ανόητο μέρος για τα παιδιά τους για να αποθηκεύσουν κάποια επιπλέον αλλαγή για ένα τηλεφώνημα; Και ναι, οι τηλεφωνικές κλήσεις κάποτε κόστιζαν δεκάρα! Getty ImagesΓίνετε κλασικοί με ένα πουκάμισο με κουμπιά, μια μίνι φούστα και πένες loafers. Στοκχόλμη StreetstyleΤα αρσενικά διαμερίσματα είναι μια τέλεια προσθήκη σε μια εύκολη εμφάνιση με τζιν και κουμπιά. Ντύστε ένα ζευγάρι προσαρμοσμένο σορτς με φούστα πουκάμισο και μαντηλάκια με μύτες. Getty ImagesΓια το γραφείο, οι δερμάτινες κλωτσιές είναι μια εξαιρετική εναλλακτική λύση στιλέτο. Απλώς μπείτε στο στυλ με φούστα και μπλούζα με μολύβι. Getty Images Γυρίστε το στυλ preppy στο κεφάλι του συνδυάζοντάς το με σχισμένο τζιν και ένα δερμάτινο μπουφάν

Διαφορά μεταξύ ενσωματωμένου συστήματος και VLSI

Embedded System vs VLSI Το ενσωματωμένο σύστημα είναι ο όρος που χρησιμοποιείται σε οποιοδήποτε υπολογιστικό σύστημα που χρησιμοποιείται για την εκτέλεση περιορισμένης ή εξειδικευμένης εργασίας. Σε αντίθεση με έναν γενικό σκοπό

Διαφορά μεταξύ Bitcoin και Bitcoin Cash

Κάποιοι θα έλεγαν ότι το Bitcoin είναι το μέλλον των χρημάτων, ενώ κάποιοι απλώς θα αρνηθούν τη σημασία του. Δεν ήταν μέχρι που ο κόσμος ξύπνησε για να χάσει όλες τις αποταμιεύσεις τους σε ένα

Διαφορές μεταξύ του INC και του BJP

Εισαγωγή Η λειτουργική δημοκρατία τέθηκε ζωντανή στην Ινδία το έτος 1947, όταν η Ινδία ελευθερώθηκε από τη βρετανική κυριαρχία και προστέθηκε στον κατάλογο των κυρίαρχων