java list methods sort list
Αυτό το σεμινάριο εξηγεί διάφορες μεθόδους λίστας Java, όπως Λίστα ταξινόμησης, λίστα περιεχομένων, λίστα προσθήκης, κατάργηση λίστας, μέγεθος λίστας, προσθήκη όλων, κατάργηση όλων, λίστα αντίστροφης & περισσότερα:
Έχουμε ήδη συζητήσει τη διεπαφή λίστας γενικά στο προηγούμενο σεμινάριό μας. Η διεπαφή λίστας έχει διάφορες μεθόδους που χρησιμοποιούνται για τον χειρισμό των περιεχομένων της λίστας. Χρησιμοποιώντας αυτές τις μεθόδους μπορείτε να εισαγάγετε / διαγράψετε, να ταξινομήσετε και να αναζητήσετε στοιχεία στη λίστα.
Σε αυτό το σεμινάριο, θα συζητήσουμε όλες τις μεθόδους που παρέχονται από τη διεπαφή λίστας.
=> Δείτε εδώ για να δείτε το A-Z Of Java Training Tutorials εδώ.
Προκειμένου να επαναληφθεί μέσω της λίστας, η διεπαφή λίστας χρησιμοποιεί το επαναληπτικό λίστας. Αυτός ο επαναληπτικός κατάλογος εκτείνεται από τη διεπαφή επανάληψης. Στο επόμενο σεμινάριό μας, θα διερευνήσουμε περισσότερα σχετικά με τον επαναληπτικό λίστας.
Τι θα μάθετε:
- Λίστα μεθόδων στην Java
- Κατάργηση διπλότυπων από μια λίστα στην Java
- Συχνές Ερωτήσεις
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Λίστα μεθόδων στην Java
Ο παρακάτω πίνακας δείχνει διάφορες λειτουργίες που παρέχονται από τη διεπαφή λίστας στην Java.
Μέθοδος λίστας | Πρωτότυπο μεθόδου | Περιγραφή |
---|---|---|
περιέχει | Το boolean περιέχει (αντικείμενο o) | Ελέγχει εάν το καθορισμένο στοιχείο υπάρχει στη λίστα και επιστρέφει αληθές εάν υπάρχει |
Μέγεθος | int μέγεθος () | Επιστρέφει το μέγεθος της λίστας, δηλαδή τον αριθμό των στοιχείων στη λίστα ή το μήκος της λίστας. |
Σαφή | κενό καθαρό () | Διαγράφει τη λίστα καταργώντας όλα τα στοιχεία της λίστας |
Προσθήκη | void add (ευρετήριο int, στοιχείο αντικειμένου) | Προσθέτει το δεδομένο στοιχείο στη λίστα στο δεδομένο ευρετήριο |
boolean προσθήκη (αντικείμενο o) | Προσθέτει το δεδομένο στοιχείο στο τέλος της λίστας | |
προσθήκη όλων | boolean addAll (Συλλογή γ) | Προσθέτει ολόκληρη τη δεδομένη συλλογή στο τέλος της λίστας |
boolean addAll (int ευρετήριο, Συλλογή γ) | Εισάγει τη δεδομένη συλλογή (όλα τα στοιχεία) στη λίστα στο καθορισμένο ευρετήριο | |
περιέχειΌλα | boolean περιέχειAll (Συλλογή γ) | Ελέγχει εάν η καθορισμένη συλλογή (όλα τα στοιχεία) είναι μέρος της λίστας. Επιστρέφει αλήθεια για ναι. |
ισούται | boolean ισούται με (αντικείμενο o) | Συγκρίνει το καθορισμένο αντικείμενο για ισότητα με στοιχεία της λίστας |
Παίρνω | Λήψη αντικειμένου (int index) | Επιστρέφει το στοιχείο στη λίστα που καθορίζεται από το ευρετήριο |
hashCode | int hashCode () | Επιστρέφει την τιμή κωδικού κατακερματισμού της λίστας. |
indexOf » | int indexOf (αντικείμενο o) | Βρίσκει την πρώτη εμφάνιση του στοιχείου εισαγωγής και επιστρέφει το ευρετήριό του |
είναι άδειο | boolean isEmpty () | Ελέγχει εάν η λίστα είναι κενή |
lastIndexOf | int lastIndexOf (αντικείμενο o) | Βρίσκει την τελευταία εμφάνιση του στοιχείου εισαγωγής στη λίστα και επιστρέφει το ευρετήριό του |
αφαιρώ | Κατάργηση αντικειμένου (int index) | Αφαιρεί το στοιχείο στο καθορισμένο ευρετήριο |
boolean remove (Αντικείμενο o) | Καταργεί το στοιχείο κατά την πρώτη εμφάνισή του στη λίστα | |
αφαίρεση όλων | boolean removeAll (Συλλογή γ) | Καταργεί όλα τα στοιχεία που περιέχονται στην καθορισμένη συλλογή από τη λίστα |
διατηρήστεΌλα | boolean retainAll (Συλλογή γ) | Απέναντι από το removeAll. Διατηρεί το στοιχείο που καθορίζεται στη συλλογή εισόδων στη λίστα. |
Σειρά | Σύνολο αντικειμένων (ευρετήριο int, στοιχείο αντικειμένου) | Αλλάζει το στοιχείο στο καθορισμένο ευρετήριο ορίζοντάς το στην καθορισμένη τιμή |
δευτερεύουσα λίστα | Λίστα subList (int fromIndex, int toIndex) | Επιστρέφει τη δευτερεύουσα λίστα στοιχείων μεταξύ fromIndex (inclusive) και toIndex (αποκλειστική). |
είδος | άκυρο είδος (Συγκριτής γ) | Ταξινόμηση του στοιχείου λίστας σύμφωνα με τον καθορισμένο συγκριτή για να δώσει μια παραγγελθείσα λίστα |
στο Array | Αντικείμενο () toArray () | Επιστρέφει την αναπαράσταση του πίνακα της λίστας |
Object () toArray (Object () a) | Επιστρέφει την αναπαράσταση του πίνακα του οποίου ο τύπος χρόνου εκτέλεσης είναι ο ίδιος με ένα καθορισμένο όρισμα πίνακα | |
επαναληπτικό | Επαναληπτικό επανάληψης () | Επιστρέφει έναν επαναληπτικό για τη λίστα |
listIterator | ListIterator listIterator () | Επιστρέφει ένα ListIterator για τη λίστα |
ListIterator listIterator (int ευρετήριο) | Επιστρέφει ένα ListIterator ξεκινώντας από το καθορισμένο ευρετήριο στη λίστα |
Στη συνέχεια, θα συζητήσουμε αυτές τις λειτουργίες μαζί με τα παραδείγματα τους.
Μέγεθος
Πρωτότυπο: int μέγεθος ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: int => Αριθμός στοιχείων στη λίστα ή με άλλα λόγια το μήκος της λίστας.
Περιγραφή: Το μέγεθος () επιστρέφει τον αριθμό των στοιχείων ή το μέγεθος της λίστας. Μπορεί επίσης να ονομαστεί μήκος με απλούς όρους.
Σαφή
Πρωτότυπο: κενό καθαρό ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: Χωρίς τιμή επιστροφής
Περιγραφή: Διαγράφει τη λίστα καταργώντας όλα τα στοιχεία της λίστας. Ρίχνει το 'UnSupportedException' εάν η λειτουργία δεν υποστηρίζεται από τη λίστα.
πώς μπορώ να ανοίξω ένα αρχείο .jar
Το παρακάτω παράδειγμα θα δείξει τη μέθοδο μεγέθους () και διαγραφής ().
import java.util.*; public class Main { public static void main(String() args) { List strList = new ArrayList(); // Creating a list //add items to list strList.add('Java'); strList.add('C++'); //print the size of list System.out.println('Size of list:' + strList.size()); //add more items to list strList.add('Ruby'); strList.add('Python'); strList.add('C#'); //print the size of list again System.out.println('Size of list after adding more elements:' + strList.size()); //clear method strList.clear(); System.out.println('List after calling clear() method:' + strList); } }
Παραγωγή:
Προσθήκη
Πρωτότυπο: void add (ευρετήριο int, στοιχείο αντικειμένου)
Παράμετροι: ευρετήριο - μια θέση στην οποία το στοιχείο πρόκειται να προστεθεί.
Στοιχείο - το στοιχείο που θα προστεθεί
Αξία επιστροφής: κενός
Περιγραφή: Προσθέτει το δεδομένο στοιχείο στη λίστα στο δεδομένο ευρετήριο. Τα επόμενα στοιχεία μετατοπίζονται προς τα δεξιά.
Οι ακόλουθες εξαιρέσεις ρίχνονται:
IndexOutOfBoundsException: Το ευρετήριο λίστας είναι εκτός εμβέλειας
UnsupportedOperationException: Η λειτουργία προσθήκης δεν υποστηρίζεται από τη λίστα.
ClassCastException: Το στοιχείο δεν μπορεί να προστεθεί στη λίστα λόγω της κατηγορίας καθορισμένων στοιχείων.
IlegalArgumentException: Το καθορισμένο στοιχείο ή κάποια πτυχή δεν είναι σωστό.
Προσθήκη
Πρωτότυπο: boolean προσθήκη (αντικείμενο o)
Παράμετροι: o => Στοιχείο που θα προστεθεί στη λίστα
Αξία επιστροφής: true => Το στοιχείο προστέθηκε με επιτυχία
False => Η προσθήκη δεν ήταν επιτυχής
Περιγραφή: Αυτή η μέθοδος προσθέτει το δεδομένο στοιχείο στο τέλος της λίστας.
Αυτή η λειτουργία μπορεί να απορρίψει τις ακόλουθες εξαιρέσεις.
UnsupportedOperationException: Η λειτουργία προσθήκης δεν υποστηρίζεται από αυτήν τη λίστα.
ClassCastException: Δεν είναι δυνατή η προσθήκη καθορισμένου στοιχείου λόγω της κλάσης του
IlegalArgumentException: Το καθορισμένο στοιχείο ή κάποια πτυχή δεν είναι σωστό.
προσθήκη όλων
Πρωτότυπο: boolean addAll (Συλλογή γ)
Παράμετροι: c => Συλλογή της οποίας τα στοιχεία πρόκειται να προστεθούν στη λίστα
Αξία επιστροφής: true => Η εκτέλεση της μεθόδου ήταν επιτυχής
Περιγραφή: Η μέθοδος addAll παίρνει όλα τα στοιχεία από τη συλλογή c και τα προσαρτά στο τέλος της λίστας διατηρώντας τη σειρά που είχε οριστεί.
Αυτή η μέθοδος εμφανίζει απροσδιόριστη συμπεριφορά εάν η συλλογή αλλάξει όταν η λειτουργία βρίσκεται σε εξέλιξη.
Η μέθοδος ρίχνει τις ακόλουθες εξαιρέσεις:
UnsupportedOperationException: Η λειτουργία προσθήκης δεν υποστηρίζεται από αυτήν τη λίστα.
ClassCastException: Δεν είναι δυνατή η προσθήκη καθορισμένου στοιχείου λόγω της κλάσης του.
IlegalArgumentException: Το καθορισμένο στοιχείο ή κάποια πτυχή δεν είναι σωστό.
προσθήκη όλων
Πρωτότυπο: boolean addAll (int ευρετήριο, Συλλογή γ)
Παράμετροι: index => Θέση στην οποία πρόκειται να εισαχθεί η συλλογή.
C => Συλλογή που πρόκειται να εισαχθεί στη λίστα.
Αξία επιστροφής: true => Εάν τα στοιχεία συλλογής προστίθενται επιτυχώς στη λίστα.
Περιγραφή: Η μέθοδος addAll εισάγει όλα τα στοιχεία της καθορισμένης συλλογής στη λίστα στο καθορισμένο ευρετήριο. Τα επόμενα στοιχεία μετατοπίζονται στη συνέχεια προς τα δεξιά. Όπως στην περίπτωση της προηγούμενης υπερφόρτωσης του addAll, η συμπεριφορά δεν προσδιορίζεται εάν η συλλογή αλλάξει όταν η λειτουργία βρίσκεται σε εξέλιξη.
Οι εξαιρέσεις που απορρέουν από αυτήν τη μέθοδο είναι:
UnsupportedOperationException: Η λειτουργία προσθήκης δεν υποστηρίζεται από αυτήν τη λίστα.
ClassCastException: Δεν είναι δυνατή η προσθήκη καθορισμένου στοιχείου λόγω της κλάσης του.
IlegalArgumentException: Το καθορισμένο στοιχείο ή κάποια πτυχή δεν είναι σωστό.
IndexOutOfBoundsException: Ευρετήριο εκτός εύρους.
Το παρακάτω πρόγραμμα δείχνει την επίδειξη του add and addAll μεθόδων της λίστας.
import java.util.*; public class Main { public static void main(String() args) { List strList = new ArrayList(); // Creating a list strList.add('Java'); strList.add('C++'); //print the list System.out.println('List after adding two elements:' + strList); List llist = new ArrayList(); // Create another list llist.add('Ruby'); llist.add('Python'); llist.add('C#'); // addAll method - add llist to strList strList.addAll(llist); System.out.println('List after addAll:'+ strList); } }
Παραγωγή:
περιέχει
Πρωτότυπο: Το boolean περιέχει (αντικείμενο o)
Παράμετροι: o => Στοιχείο προς αναζήτηση στη λίστα.
Αξία επιστροφής: true => Εάν η λίστα περιέχει το καθορισμένο στοιχείο.
Περιγραφή: Η μέθοδος «περιέχει» ελέγχει εάν το καθορισμένο στοιχείο υπάρχει στη λίστα και επιστρέφει μια τιμή Boolean αληθής εάν το στοιχείο υπάρχει. Διαφορετικά, επιστρέφει ψευδής.
περιέχειΌλα
Πρωτότυπο: boolean περιέχειAll (Συλλογή γ)
Παράμετροι: c => Συλλογή προς αναζήτηση στη λίστα.
Αξία επιστροφής: true => Εάν όλα τα στοιχεία της καθορισμένης συλλογής υπάρχουν στη λίστα.
Περιγραφή: Η μέθοδος 'περιέχειAll' ελέγχει εάν όλα τα στοιχεία που υπάρχουν στην καθορισμένη συλλογή υπάρχουν στη λίστα. Εάν υπάρχει, επιστρέφει μια πραγματική τιμή και ένα ψευδές αλλιώς.
Το ακόλουθο πρόγραμμα Java δείχνει τη χρήση των μεθόδων «περιέχει» και «περιέχει όλα» της λίστας.
import java.util.*; public class Main { public static void main(String() args) { //define list of strings List list = new ArrayList(); //initialize list to strings list.add('Java'); list.add('Xml'); list.add('Python'); list.add('Ruby'); list.add('JavaScript'); //contains method demo if(list.contains('C')==true) System.out.println('Given list contains string 'C''); else if(list.contains('Java')==true) System.out.println('Given list contains string 'Java' but not string 'C''); //containsAll method demo List myList = new ArrayList(); myList.add('Ruby'); myList.add('Python'); if(list.containsAll(myList)==true) System.out.println('List contains strings 'Ruby' and 'Python''); } }
Παραγωγή:
Η δεδομένη λίστα περιέχει συμβολοσειρά «Java» αλλά όχι συμβολοσειρά «C»
Η λίστα περιέχει συμβολοσειρές «Ruby» και «Python»
ισούται
Πρωτότυπο: boolean ισούται με (αντικείμενο o)
Παράμετροι: o => Το αντικείμενο που πρόκειται να ελεγχθεί για ισότητα.
Αξία επιστροφής: true => Εάν το δεδομένο αντικείμενο είναι ίσο με τη λίστα.
Περιγραφή: Αυτή η μέθοδος χρησιμοποιείται για τη σύγκριση του δεδομένου αντικειμένου με τη λίστα ισότητας. Εάν το καθορισμένο αντικείμενο είναι μια λίστα, τότε η μέθοδος επιστρέφει true. Και οι δύο λίστες λέγεται ότι είναι ίσες εάν και μόνο εάν έχουν το ίδιο μέγεθος και τα αντίστοιχα στοιχεία στις δύο λίστες είναι ίδια και με την ίδια σειρά.
Μια επίδειξη της μεθόδου ισούται παρακάτω:
import java.util.LinkedList; import java.util.List; public class Main { public static void main(String() args) { //define lists List first_list= new LinkedList(); List second_list = new LinkedList(); List third_list = new LinkedList(); //initialize lists with values for (int i=0;i<11;i++){ first_list.add(i); second_list.add(i); third_list.add(i*i); } //print each list System.out.println('First list: ' + first_list); System.out.println('Second list: ' + second_list); System.out.println('Third list: ' + third_list); //use equals method to check equality with each list to other if (first_list.equals(second_list) == true) System.out.println('
first_list and second_list are equal.
'); else System.out.println('first_list and second_list are not equal.
'); if(first_list.equals(third_list)) System.out.println('first_list and third_list are equal.
'); else System.out.println('first_list and third_list are not equal.
'); if(second_list.equals(third_list)) System.out.println('second_list and third_list are equal.
'); else System.out.println('second_list and third_list are not equal.
'); } }
Παραγωγή:
Παίρνω
Πρωτότυπο: Λήψη αντικειμένου (int index)
Παράμετροι: index => Θέση στην οποία θα επιστραφεί το στοιχείο.
Αξία επιστροφής: αντικείμενο => Στοιχείο στην καθορισμένη θέση.
Περιγραφή: Η μέθοδος get () επιστρέφει το στοιχείο στη δεδομένη θέση.
Αυτή η μέθοδος ρίχνει το 'indexOutOfBoundsException' εάν το καθορισμένο ευρετήριο είναι εκτός του εύρους της λίστας.
Σειρά
Πρωτότυπο: Σύνολο αντικειμένων (ευρετήριο int, στοιχείο αντικειμένου)
Παράμετροι: index => Θέση στην οποία πρόκειται να οριστεί το νέο στοιχείο.
element => Νέο στοιχείο που θα τοποθετηθεί στη θέση που δίνεται από το ευρετήριο.
Αξία επιστροφής: Object => Στοιχείο που αντικαταστάθηκε
Περιγραφή: Το σύνολο μεθόδου () αντικαθιστά το στοιχείο στο δεδομένο ευρετήριο από μια άλλη τιμή που δίνεται από το στοιχείο.
Η μέθοδος μπορεί να απορρίψει τις ακόλουθες εξαιρέσεις:
UnsupportedOperationException: Η λειτουργία Set δεν υποστηρίζεται από τη λίστα.
ClassCastException: Η λειτουργία δεν μπορεί να εκτελεστεί λόγω της κλάσης του στοιχείου
IlegalArgumentException: Το επιχείρημα ή κάποια πτυχή αυτού είναι παράνομο
IndexOutOfBoundsException: Ευρετήριο εκτός εύρους.
Το παρακάτω πρόγραμμα δείχνει ένα παράδειγμα της μεθόδου get () and set ().
import java.util.*; public class Main { public static void main(String() args) { //define list List listA = new ArrayList(); listA.add('Java'); listA.add('C++'); listA.add('Python'); //access list elements using index with get () method System.out.println('Element at index 0:' + listA.get(0)); System.out.println('Element at index 1:' + listA.get(1)); System.out.println('Element at index 2:' + listA.get(2)); //set element at index 1 to Ruby listA.set(1,'Ruby'); System.out.println('Element at index 1 changed to :' + listA.get(1) ); } }
Παραγωγή:
hashCode
Πρωτότυπο: int hashCode ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: int => hashCode της λίστας
Περιγραφή: Η μέθοδος 'hashCode ()' επιστρέφει το hashCode της λίστας που είναι ακέραια τιμή.
Παράδειγμα:
import java.util.*; public class Main { public static void main(String() args) { // Initializing a list of type Linkedlist List mylist = new LinkedList(); mylist.add(1); mylist.add(3); mylist.add(5); mylist.add(7); //print the list System.out.println('The list:' + mylist); //use hashCode() method to find hashcode of list int hash = mylist.hashCode(); System.out.println('Hashcode for list:' + hash); } }
Παραγωγή:
είναι άδειο
Πρωτότυπο: boolean isEmpty ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: true => Η λίστα είναι κενή
Περιγραφή: Η μέθοδος «isEmpty ()» ελέγχει εάν η λίστα είναι κενή. Η μέθοδος IsEmpty χρησιμοποιείται για να ελέγξει εάν η λίστα περιέχει στοιχεία σε αυτήν πριν ξεκινήσετε την επεξεργασία αυτών των στοιχείων.
ευρετήριο
Πρωτότυπο: int indexOf (αντικείμενο o)
Παράμετροι: o => στοιχείο για αναζήτηση στη λίστα
Αξία επιστροφής: int => το ευρετήριο ή η θέση της πρώτης εμφάνισης του δεδομένου στοιχείου στη λίστα. Επιστρέφει -1 εάν δεν υπάρχει στοιχείο.
Περιγραφή: Η μέθοδος «indexOf ()» επιστρέφει το ευρετήριο της πρώτης εμφάνισης του δεδομένου στοιχείου o στη λίστα. Εάν το στοιχείο δεν βρεθεί επιστρέφει -1.
lastIndexOf
Πρωτότυπο: int lastIndexOf (αντικείμενο o)
Παράμετροι: o => Αντικείμενο του οποίου το ευρετήριο πρέπει να αναζητηθεί
Αξία επιστροφής: int => Ευρετήριο της τελευταίας εμφάνισης του δεδομένου στοιχείου στη λίστα, -1 διαφορετικά.
Περιγραφή: Η μέθοδος «lastIndexOf ()» επιστρέφει το ευρετήριο της τελευταίας εμφάνισης του στοιχείου o στη λίστα. Εάν το στοιχείο δεν βρεθεί, η μέθοδος επιστρέφει -1.
Το παρακάτω πρόγραμμα Java δείχνει τη χρήση των μεθόδων indexOf και lastIndexOf της λίστας.
import java.util.*; public class Main { public static void main(String() args) { // define an integer array List intList = new ArrayList(5); //add elements to the list intList.add(10); intList.add(20); intList.add(30); intList.add(10); intList.add(20); //print the list System.out.println('The list of integers:' + intList); // Use indexOf() and lastIndexOf() methods of list to find first and last index System.out.println('first index of 20:' + intList.indexOf(20)); System.out.println('last index of 10:' + intList.lastIndexOf(10)); } }
Παραγωγή:
αφαιρώ
Πρωτότυπο: Κατάργηση αντικειμένου (int index)
Παράμετροι: index => Ευρετήριο ή θέση στη λίστα στην οποία πρόκειται να αφαιρεθεί το στοιχείο
Αξία επιστροφής: Object => Το στοιχείο καταργήθηκε
Περιγραφή: Η μέθοδος 'remove ()' αφαιρεί το στοιχείο στη δεδομένη θέση από τη λίστα. Μετά τη διαγραφή, τα στοιχεία δίπλα στο διαγραμμένο στοιχείο μετακινούνται αριστερά.
Αυτή η μέθοδος μπορεί να απορρίψει τις ακόλουθες εξαιρέσεις:
UnsupportedOperationException: Η κατάργηση δεν υποστηρίζεται από τη λίστα.
IndexOutOfBoundsException: Ο καθορισμένος δείκτης είναι εκτός εύρους
αφαιρώ
Πρωτότυπο: boolean remove (Αντικείμενο o)
Παράμετροι: o => Στοιχείο για κατάργηση από τη λίστα
Αξία επιστροφής: true => Το στοιχείο καταργήθηκε με επιτυχία.
Περιγραφή: Αυτή η υπερφορτωμένη έκδοση της μεθόδου κατάργησης () αφαιρεί την πρώτη εμφάνιση ενός δεδομένου στοιχείου o από τη λίστα. Εάν το δεδομένο στοιχείο δεν υπάρχει στη λίστα, τότε παραμένει αμετάβλητο.
Αυτή η μέθοδος μπορεί να απορρίψει την ακόλουθη εξαίρεση:
UnsupportedOperationException: Η κατάργηση δεν υποστηρίζεται από τη λίστα.
αφαίρεση όλων
Πρωτότυπο: boolean removeAll (Συλλογή γ)
Παράμετροι: c => Μια συλλογή που περιέχει στοιχεία που καταργούνται από τη λίστα.
Αξία επιστροφής: true => Εάν η κλήση μεθόδου είναι επιτυχής και όλα τα στοιχεία που καθορίζονται στη συλλογή c καταργούνται από τη λίστα.
Περιγραφή: Η μέθοδος «removeAll ()» χρησιμοποιείται για την κατάργηση όλων των στοιχείων από τη λίστα που καθορίζονται στη συλλογή c, η οποία περνά ως όρισμα.
Αυτή η μέθοδος μπορεί να απορρίψει την ακόλουθη εξαίρεση:
UnsupportedOperationException: Το removeAll δεν υποστηρίζεται από τη λίστα.
Ας δούμε ένα παράδειγμα κατάργησης και αφαίρεσηςΌλων των μεθόδων.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); // Removes element from index 1 oddList.remove(1); System.out.println('Oddlist after removing element at index 1:' + oddList); //removeAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.removeAll(c1); System.out.println('Oddlist after removing elements {1,5,11}}:' + oddList); } }
Παραγωγή:
διατηρήστεΌλα
Πρωτότυπο: boolean retainAll (Συλλογή γ)
Παράμετροι: c => Συλλογή που περιέχει στοιχεία που πρέπει να διατηρηθούν στη λίστα.
Αξία επιστροφής: true => Εάν η κλήση μεθόδου άλλαξε τη λίστα.
Περιγραφή: Αυτή η μέθοδος αφαιρεί όλα τα στοιχεία από τη λίστα εκτός από εκείνα που υπάρχουν στη συλλογή c. Με άλλα λόγια, αυτή η μέθοδος διατηρεί όλα τα στοιχεία στη λίστα που υπάρχουν στη συλλογή c και καταργεί τα άλλα στοιχεία.
Αυτή η μέθοδος μπορεί να απορρίψει την ακόλουθη εξαίρεση:
UnsupportedOperationException: retainAll δεν υποστηρίζεται από τη λίστα.
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); //retainAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.retainAll(c1); System.out.println('Oddlist after call to retainAll (1,5,11):' + oddList); } }
Παραγωγή:
δευτερεύουσα λίστα
Πρωτότυπο: Λίστα subList (int fromIndex, int toIndex)
Παράμετροι: fromIndex => Κάτω ευρετήριο της λίστας (συμπεριλαμβάνεται)
toIndex => Υψηλότερο ευρετήριο της λίστας (αποκλειστικό)
Αξία επιστροφής: Λίστα => Μια υπο-λίστα της δεδομένης λίστας
Περιγραφή: Η δευτερεύουσα λίστα μεθόδου () επιστρέφει τη μερική προβολή της λίστας, επίσης γνωστή ως δευτερεύουσα λίστα από 'fromIndex' σε 'toIndex'. Η επιστρεφόμενη δευτερεύουσα λίστα είναι απλώς μια προβολή της μητρικής λίστας και, επομένως, τυχόν αλλαγές που γίνονται σε οποιαδήποτε λίστα αντικατοπτρίζονται παντού.
Ομοίως, όλες οι λειτουργίες της λίστας λειτουργούν επίσης σε μια δευτερεύουσα λίστα.
Η μέθοδος μπορεί να ρίξει την ακόλουθη εξαίρεση:
IndexOutOfBoundsException: Παράνομη τιμή toIndex.
Παρακάτω παρατίθεται ένα παράδειγμα προγράμματος για τη μέθοδο υποκαταλόγων.
import java.util.*; public class Main { public static void main(String() args) { // define a string list List strList = new ArrayList(5); //add elements to the list strList.add('Java'); strList.add('Tutorials'); strList.add('Collection'); strList.add('Framework'); strList.add('Series'); //print the original list System.out.println('The original list=>strList: ' + strList); //define another list List subList = new ArrayList(); // take a sublist of elements from 2 to 4 from strList subList = strList.subList(2, 4); //print the sublist System.out.println('The sublist of strList:' + subList); } }
Παραγωγή:
λίστα ταξινόμησης
Πρωτότυπο: άκυρο είδος (Συγκριτής γ)
Παράμετροι: c => Συγκριτής βάσει του οποίου ταξινομείται η λίστα.
Αξία επιστροφής: ΜΗΔΕΝ
Περιγραφή: Η μέθοδος «sort ()» χρησιμοποιείται για την ταξινόμηση της λίστας. Η μέθοδος χρησιμοποιεί το συγκριτικό που καθορίζεται για να ταξινομήσετε τη λίστα.
Ας δούμε ένα παράδειγμα της μεθόδου ταξινόμησης . Το συγκρίναμε με τη μέθοδο Collections.sort που ταξινομεί τα στοιχεία σε μια φυσική ακολουθία. Η έξοδος του προγράμματος είναι μια λίστα με σειρά.
import java.util.Collections; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { public static void main(String() args) { //define list List intArray = new ArrayList(); Random random = new Random(); //populate the list with random numbers <20 for (int i = 0; i {return (o2-o1);}); //comparator to sort in reverse System.out.println('Reverse List sorted using comparator:
'+intArray); } }
Παραγωγή:
στο Array
Πρωτότυπο: Αντικείμενο () toArray ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: Object () => Αναπαράσταση συστοιχίας της λίστας
Περιγραφή: Η μέθοδος toArray () επιστρέφει την αναπαράσταση του πίνακα στη σωστή ακολουθία.
στο Array
Πρωτότυπο: Object () toArray (Object () a)
Παράμετροι: a => Τύπος συστοιχίας που πρέπει να ταιριάζει με τους τύπους στοιχείων κατά τη μετατροπή της λίστας σε πίνακα.
Αξία επιστροφής: Object () => Αναπαράσταση συστοιχίας της λίστας.
Περιγραφή: Αυτή η υπερφόρτωση της μεθόδου στοArray () επιστρέφει τον πίνακα που περιέχει στοιχεία στη λίστα που έχουν τον ίδιο τύπο χρόνου εκτέλεσης με αυτόν του πίνακα α.
Αυτή η μέθοδος μπορεί να απορρίψει την ακόλουθη εξαίρεση:
ArrayStoreException: Ο τύπος χρόνου εκτέλεσης κάθε στοιχείου στη λίστα δεν είναι υποτύπος του τύπου χρόνου εκτέλεσης κάθε στοιχείου αυτής της λίστας.
Το παρακάτω είναι ένα παράδειγμα της εφαρμογής της μεθόδου toArray.
import java.util.*; public class Main { public static void main(String() args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('Size of the colorsList: ' + colorsList.size()); // Print the colors in the list System.out.println('Contents of colorsList:'); for (String value : colorsList){ System.out.print(value + ' '); } // Create an array from the list using toArray method String colorsArray() = new String(colorsList.size()); colorsArray = colorsList.toArray(colorsArray); // Display the contents of the array System.out.println('
Printing elements of colorsArray:' + Arrays.toString(colorsArray)); } }
Παραγωγή:
Επαναληπτής
Πρωτότυπο: Επαναληπτικό επανάληψης ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: Iterator => Iterator για επανάληψη των στοιχείων της λίστας
Περιγραφή: Αυτή η μέθοδος επιστρέφει τον επαναληπτικό που επαναλαμβάνει τα στοιχεία της λίστας.
Πρόγραμμα Java για επίδειξη χρησιμοποιώντας επαναληπτικό.
import java.util.*; public class Main { public static void main(String() args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('ColorList using iterator:'); //define iterator for colorsList Iterator iterator = colorsList.iterator(); //iterate through colorsList using iterator and print each item while(iterator.hasNext()){ System.out.print(iterator.next() + ' '); } } }
Παραγωγή:
listIterator
Πρωτότυπο: ListIterator listIterator ()
Παράμετροι: ΜΗΔΕΝ
Αξία επιστροφής: ListIterator => Listiterator των στοιχείων στη λίστα.
Περιγραφή: Method listIterator () επιστρέφει το αντικείμενο ListIterator των στοιχείων στη λίστα. Αυτό το επαναληπτικό ξεκινά από την αρχή της λίστας, δηλ. Ευρετήριο 0.
listIterator
Πρωτότυπο: ListIterator listIterator (int ευρετήριο)
Παράμετροι: index => Θέση από την οποία ξεκινά το listIterator.
Αξία επιστροφής: ListIterator => Αντικείμενο ListIterator σε καθορισμένο ευρετήριο στη λίστα.
Περιγραφή: Η υπερφόρτωση της μεθόδου listIterator () επιστρέφει ένα listIterator που ξεκινά από τη δεδομένη θέση στη λίστα. Το δεδομένο ευρετήριο υποδεικνύει ότι θα είναι το πρώτο στοιχείο που θα επιστραφεί με τη μέθοδο της πρώτης κλήσης στο nextElement () του ListIterator.
Η μέθοδος μπορεί να ρίξει IndexOutOfBoundsException για τη μη έγκυρη τιμή του ευρετηρίου.
Το παρακάτω παράδειγμα δείχνει τη χρήση του listIterator.
import java.util.*; public class Main { public static void main(String() args) { //define list & add items to list List nameList = new LinkedList(); nameList.add('Java'); nameList.add('C++'); nameList.add('Python'); // get listIterator for the list ListIterator namesIterator = nameList.listIterator(); // Traverse list using listiterator and print each item System.out.println('Contents of list using listIterator:'); while(namesIterator.hasNext()){ System.out.print(namesIterator.next() + ' '); } } }
Παραγωγή:
Θα συζητήσουμε λεπτομερώς το ListIterator αργότερα.
Ας συζητήσουμε τώρα μερικές από τις διάφορες λειτουργίες που μπορούν να γίνουν σε λίστες αλλά μέθοδοι για τις οποίες δεν παρέχονται στη διεπαφή λίστας.
Αντιγραφή λίστας σε Java
Για την αντιγραφή στοιχείων μιας λίστας σε μια άλλη λίστα, πρέπει να χρησιμοποιήσετε τη μέθοδο αντιγραφής () που παρέχεται από το πλαίσιο Συλλογές.
Η μέθοδος Collections.copy () αντιγράφει όλα τα στοιχεία της λίστας που παρέχονται ως δεύτερο όρισμα, στη λίστα που παρέχεται ως το πρώτο όρισμα. Σημειώστε ότι η λίστα στην οποία αντιγράφονται τα περιεχόμενα μιας άλλης λίστας πρέπει να είναι αρκετά μεγάλη ώστε να χωράει τα αντιγραμμένα στοιχεία.
Εάν η λίστα δεν είναι αρκετά μεγάλη, η μέθοδος αντιγραφής ρίχνει το 'indexOutOfBoundsEexception'.
Το ακόλουθο πρόγραμμα αντιγράφει τα περιεχόμενα μιας λίστας σε μια άλλη.
import java.util.*; public class Main { public static void main(String() args) { //create first ArrayList object List aList_1 = new ArrayList(); //Add elements to first ArrayList aList_1.add('R'); aList_1.add('G'); aList_1.add('B'); //print the List System.out.println('The first list:' + aList_1); //create second ArrayList object List aList_2 = new ArrayList(); //Add elements to second Arraylist aList_2.add('Red'); aList_2.add('Green'); aList_2.add('Blue'); aList_2.add('Yellow'); aList_2.add('Brown'); System.out.println('The second list: ' + aList_2); //use Collections.copy() method to copy elements of first list to second list. Collections.copy(aList_2,aList_1); //print the resultant second Arraylist System.out.println('
The second list after copying first list to second list: ' + aList_2); } }
Παραγωγή:
Κατάργηση διπλότυπων από μια λίστα στην Java
Μια δεδομένη λίστα μπορεί να έχει ή να μην έχει επαναλαμβανόμενα στοιχεία ή αντίγραφα. Εάν η λίστα με την οποία εργάζεστε έχει διπλά στοιχεία και θέλετε όλα τα ξεχωριστά στοιχεία στη λίστα, τότε υπάρχουν δύο μέθοδοι για την κατάργηση διπλότυπων από τη λίστα που υποστηρίζεται στην Java.
Χρήση της ροής Java 8
Η πρώτη μέθοδος για την αφαίρεση διπλότυπων από τη λίστα είναι με τη χρήση της διακριτής () μεθόδου που παρέχεται από τη ροή Java 8. Εδώ, η λίστα που περιέχει διπλότυπα καλεί τη μέθοδο stream () .distinct και στη συνέχεια η τιμή επιστροφής μετατρέπεται σε μια νέα λίστα που θα έχει μόνο τα ξεχωριστά στοιχεία.
Το ακόλουθο πρόγραμμα δείχνει τη χρήση της διακριτής () μεθόδου.
import java.util.*; import java.util.stream.Collectors; class Main { public static void main(String() args) { // original list List intlist = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5,6,5,3,4)); // Print the list System.out.println('Original ArrayList: ' + intlist); // using distinct() method of Java 8 stream remove duplicates from original List //and generate a new list without duplicates List distinct_list = intlist.stream().distinct() .collect(Collectors.toList()); // Print the new list System.out.println('ArrayList after removing duplicates: ' + distinct_list); } }
Παραγωγή:
Χρησιμοποιώντας την προσέγγιση Iterator
Η κατάργηση διπλών από τη λίστα χρησιμοποιώντας τον επαναληπτικό είναι μια μακρά και πρωτόγονη προσέγγιση. Σε αυτήν την προσέγγιση, πρέπει να διασχίσετε τη λίστα και να βάλετε την πρώτη εμφάνιση κάθε στοιχείου σε μια νέα λίστα. Κάθε επόμενο στοιχείο ελέγχεται εάν είναι διπλότυπο.
Το παρακάτω πρόγραμμα το επιτυγχάνει.
import java.util.*; public class Main { public static void main(String args()) { // create original list ArrayList aList = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 5, 3, 4)); // Print the original list System.out.println('Original List: '+ aList); // Create a new list ArrayList new_List = new ArrayList(); // Traverse through the original list to remove duplicates for (Integer element : aList) { // check if element is present in new_List, else add it if (!new_List.contains(element)) { new_List.add(element); } } // Print the new list without duplicates System.out.println('List after removing duplicates: '+ new_List); } }
Παραγωγή:
Συχνές Ερωτήσεις
Q # 1) Τι είναι η μέθοδος get στη λίστα στην Java;
Απάντηση: Η μέθοδος λήψης της λίστας χρησιμοποιείται για την ανάκτηση ενός συγκεκριμένου στοιχείου στη λίστα με βάση το ευρετήριο. Μεταβιβάζετε το απαιτούμενο ευρετήριο στη μέθοδο get και η μέθοδος get θα επιστρέψει την τιμή του στοιχείου σε αυτό το ευρετήριο.
Q # 2) Ποια είναι η μέθοδος toArray στην Java;
Απάντηση: Η μέθοδος toArray () χρησιμοποιείται για να πάρει την αναπαράσταση του πίνακα της λίστας.
Q # 3) Πώς ταξινομείτε μια λίστα στην Java;
Απάντηση: Στην Java, μια λίστα μπορεί να ταξινομηθεί χρησιμοποιώντας τη μέθοδο ταξινόμησης της λίστας. Μπορείτε να περάσετε τα δικά σας κριτήρια ταξινόμησης χρησιμοποιώντας τη διεπαφή σύγκρισης που μεταβιβάζεται στη μέθοδο ταξινόμησης ως παράμετρος.
Μπορείτε επίσης να χρησιμοποιήσετε τις Συλλογές. Μέθοδος ταξινόμησης για ταξινόμηση της λίστας. Αυτή η μέθοδος ταξινομεί τη λίστα σύμφωνα με τη φυσική σειρά.
Q # 4) Τι είναι το Arrays.asList () στην Java;
Απάντηση: Η μέθοδος «asList» του πίνακα επιστρέφει τη λίστα των στοιχείων που υποστηρίζονται από έναν πίνακα.
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε όλες τις μεθόδους που παρέχει μια λίστα. Η λίστα Java παρέχει διάφορες μεθόδους χρησιμοποιώντας τις οποίες μπορείτε να χειριστείτε και να επεξεργαστείτε λίστες, όπως αναζήτηση, ταξινόμηση κ.λπ. Εδώ έχουμε εξηγήσει κάθε μέθοδο με κατάλληλα παραδείγματα προγραμματισμού εδώ.
Στο επερχόμενο σεμινάριό μας, θα συζητήσουμε λεπτομερώς το ListIterator.
=> Εξερευνήστε την απλή σειρά εκπαίδευσης Java εδώ.
Συνιστώμενη ανάγνωση
- Λίστα Java - Τρόπος δημιουργίας, αρχικοποίησης και χρήσης λίστας στην Java
- Κρυφή λίστα για συστοιχία και άλλες συλλογές στην Java
- Εκμάθηση Python Advanced List (Ταξινόμηση λίστας, Αντίστροφη, Ευρετήριο, Αντιγραφή, Συμμετοχή, Άθροισμα)
- Λίστα Python - Δημιουργία, πρόσβαση, φέτα, προσθήκη ή διαγραφή στοιχείων
- Νήματα Java με μεθόδους και κύκλο ζωής
- Κατάργηση / διαγραφή στοιχείου από μια σειρά στην Java
- Εκμάθηση συμβολοσειράς Java | Μέθοδοι συμβολοσειράς Java με παραδείγματα
- Προεπιλεγμένη λίστα διευθύνσεων IP δρομολογητή για κοινές μάρκες ασύρματου δρομολογητή