This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:jfc_intf_collection [2015/03/16 16:35] gthanos [Εργασίες με πολλαπλές εγγραφές] |
java:jfc_intf_collection [2015/03/22 19:34] gthanos |
||
---|---|---|---|
Line 43: | Line 43: | ||
==== 2ος τρόπος - iterator ==== | ==== 2ος τρόπος - iterator ==== | ||
- | Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω | + | Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω υλοποίηση |
<code java> | <code java> | ||
public void iterateList() { | public void iterateList() { | ||
Line 54: | Line 54: | ||
Συνιστάται ο 2ος τρόπος αντί για τον 1ο εάν θέλετε καθώς διατρέχετε τη συλλογή να διαγράφετε και εγγραφές. | Συνιστάται ο 2ος τρόπος αντί για τον 1ο εάν θέλετε καθώς διατρέχετε τη συλλογή να διαγράφετε και εγγραφές. | ||
+ | |||
+ | ===== Βασικές μέθοδοι ===== | ||
+ | |||
+ | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#isEmpty()|isEmpty()]]:** Εξετάζει αν το Collection έχει περιεχόμενα ή όχι επιστρέφοντας true/false. | ||
+ | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#size()|size()]]:** Επιστρέφει τον αριθμό των αντικειμένων που περιέχει το Collection ή μηδέν αν είναι άδειο. | ||
+ | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#iterator()|iterator()]]:** Επιστρέφει ένα [[https://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html|Iterator<E>]] object για την διάτρεξη του Collection. | ||
+ | |||
===== Εργασίες με πολλαπλές εγγραφές ===== | ===== Εργασίες με πολλαπλές εγγραφές ===== | ||
+ | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#clear()|clear()]]** - Διαγράφει όλα τα περιεχόμενα του Collection. | ||
* **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#containsAll%28java.util.Collection%29|containsAll(Collection<?> c)]]** - Επιστρέφει true εάν υπάρχουν όλα τα μέλη της ''c'' στην αρχική λίστα. Διαφορετικά επιστρέφει false. | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#containsAll%28java.util.Collection%29|containsAll(Collection<?> c)]]** - Επιστρέφει true εάν υπάρχουν όλα τα μέλη της ''c'' στην αρχική λίστα. Διαφορετικά επιστρέφει false. | ||
Line 89: | Line 97: | ||
public static void main(String args[]) { | public static void main(String args[]) { | ||
StudentCollection stl = new StudentCollection(); | StudentCollection stl = new StudentCollection(); | ||
- | Collection <Student> sts = stl.getStudents(); | + | Collection <Student> sts = stl.getStudents(); // comment out this line and uncomment the following comments |
+ | |||
+ | /* | ||
+ | Collection <Student> sts = new LinkedList<Student>(); | ||
+ | sts.add(new Student("John", "Smith")); | ||
+ | sts.add(new Student("Stanley", "Peters")); | ||
+ | */ | ||
if( stl.getStudents().containsAll(sts) ) { | if( stl.getStudents().containsAll(sts) ) { | ||
Line 102: | Line 116: | ||
</code> | </code> | ||
- | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#addAll%28java.util.Collection%29|removeAll(Collection<?> c)]]** - Προσθέτει όλες τις εγγραφές που περιέχονται στο Collection ''c''. | + | Στην συνέχεια βάλτε σχόλια στην γραμμή που υποδεικνύουν τα σχόλια και αφαιρέστε το τμήμα του κώδικα που είναι σε σχόλια. Μεταγλωττίστε και τρέξτε. Ποιό είναι το αποτέλεσμα αυτή την φορά; Γιατί συμβαίνει αυτό; |
+ | |||
+ | <WRAP center 70% round tip> | ||
+ | Όταν συγκρίνονται δύο //Collections// ως προς τα περιεχόμενα τους συγκρίνουμε εάν η πρώτη περιέχει __τα ίδια ακριβώς__ στοιχεία με την δεύτερη, δηλαδή τα ίδια ακριβώς objects. Εάν δημιουργηθούν αντίγραφα των objects της μίας και τοποθετηθούν στην 2η η σύγκριση των περιεχομένων δεν επιστρέφει ισότητα. | ||
+ | </WRAP> | ||
+ | |||
+ | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#addAll%28java.util.Collection%29|addAll(Collection<?> c)]]** - Προσθέτει όλες τις εγγραφές που περιέχονται στο Collection ''c''. | ||
<code java StudentCollection.java> | <code java StudentCollection.java> | ||
Line 187: | Line 207: | ||
StudentCollection stl = new StudentCollection(); | StudentCollection stl = new StudentCollection(); | ||
Collection <Student> sts = new LinkedList<Student>(); | Collection <Student> sts = new LinkedList<Student>(); | ||
+ | | ||
+ | //comment for statement | ||
int i=0; | int i=0; | ||
for(Student st : stl.getStudents()) { | for(Student st : stl.getStudents()) { | ||
Line 192: | Line 214: | ||
if(++i==2) break; | if(++i==2) break; | ||
} | } | ||
+ | | ||
+ | //and uncomment this code below | ||
+ | /* | ||
+ | sts.add(new Student("John", "Smith")); | ||
+ | sts.add(new Student("Stanley", "Peters")); | ||
+ | */ | ||
| | ||
stl.getStudents().removeAll(sts); | stl.getStudents().removeAll(sts); | ||
Line 199: | Line 227: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | <WRAP center 70% round tip> | ||
+ | Και εδώ ισχύει ότι αναφέραμε παραπάνω αναφορικά με την σύγκριση των //Collections//. Eάν η λίστα //sts// δημιουργηθεί από αντίγραφα των αντικειμένων της λίστας //stl//, η μέθοδος //removeAll// δεν θα αφαιρέσει τίποτα. | ||
+ | </WRAP> | ||