This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
java:jfc_intf_collection [2017/02/17 15:47] gthanos [2ος τρόπος - iterator] |
java:jfc_intf_collection [2017/02/17 16:29] gthanos [Εργασίες με πολλαπλές εγγραφές] |
||
---|---|---|---|
Line 43: | Line 43: | ||
==== 2ος τρόπος - iterator ==== | ==== 2ος τρόπος - iterator ==== | ||
- | Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω υλοποίηση | + | Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω υλοποίηση. Ο τύπος [[http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html|Iterator<Τ>]] είναι ένας παραμετρικός τύπος δεδομένων (ένα interface) που επιτρέπει την διάτρεξη του Collection από την αρχή έως το τέλος. |
<code java> | <code java> | ||
public void iterateList() { | public void iterateList() { | ||
Line 53: | Line 54: | ||
</code> | </code> | ||
- | Συνιστάται ο 2ος τρόπος αντί για τον 1ο εάν θέλετε καθώς διατρέχετε τη συλλογή να διαγράφετε και εγγραφές. Μπορείτε να διαγράφετε εγγραφές μέσω της μεθόδου [[http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html#remove()|remove()]] του iterator. | + | Στο παραπάνω παράδειγμα οι δύο μέθοδοι ''iterateList()'' είναι ισοδύναμες. Το πλεονέκτημα του iterator είναι ότι σας επιτρέπει να διαγράφετε εγγραφές καθώς διατρέχετε τη συλλογή. Συγκεκριμένα, μπορείτε να διαγράφετε εγγραφές μέσω της μεθόδου [[http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html#remove()|remove()]]. Για παράδειγμα, η παρακάτω μέθοδος διαγράφει όλα τα δεδομένα της συλλογής: |
+ | |||
+ | <code java> | ||
+ | <code java> | ||
+ | public void clearCollection() { | ||
+ | Iterator<Student> it = students.iterator(); | ||
+ | while( it.hasNext() ) { | ||
+ | it.remove(); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
===== Βασικές μέθοδοι ===== | ===== Βασικές μέθοδοι ===== | ||
Line 119: | Line 130: | ||
<WRAP center 70% round tip> | <WRAP center 70% round tip> | ||
- | Όταν συγκρίνονται δύο //Collections// ως προς τα περιεχόμενα τους συγκρίνουμε εάν η πρώτη περιέχει __τα ίδια ακριβώς__ στοιχεία με την δεύτερη, δηλαδή τα ίδια ακριβώς objects. Εάν δημιουργηθούν αντίγραφα των objects της μίας και τοποθετηθούν στην 2η η σύγκριση των περιεχομένων δεν επιστρέφει ισότητα. | + | Όταν συγκρίνονται δύο //Collections// ως προς τα περιεχόμενα τους συγκρίνουμε εάν το πρώτο περιέχει __τα ίδια__ στοιχεία με το δεύτερο, δηλαδή τα ίδια αντικείμενα. Εάν δημιουργηθούν αντίγραφα των αντικειμένων της μίας και τοποθετηθούν στην 2η η σύγκριση των περιεχομένων δεν επιστρέφει ισότητα. |
</WRAP> | </WRAP> | ||
Line 229: | Line 240: | ||
<WRAP center 70% round tip> | <WRAP center 70% round tip> | ||
- | Και εδώ ισχύει ότι αναφέραμε παραπάνω αναφορικά με την σύγκριση των //Collections//. Eάν η λίστα //sts// δημιουργηθεί από αντίγραφα των αντικειμένων της λίστας //stl//, η μέθοδος //removeAll// δεν θα αφαιρέσει τίποτα. | + | Και εδώ ισχύει ότι αναφέραμε παραπάνω αναφορικά με την σύγκριση των //Collections//. Eάν η συλλογή //sts// δημιουργηθεί από αντίγραφα των αντικειμένων της συλλογής //stl//, η μέθοδος //removeAll// δεν θα αφαιρέσει κανένα στοιχείο. Αφαίρεση αντικειμένων θα γίνει μόνο για αντικείμενα που ανήκουν ταυτόχρονα στις συλλογές //stl// και //sts//. |
</WRAP> | </WRAP> | ||