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/17 14:44] gthanos |
java:jfc_intf_collection [2016/02/26 11:15] 127.0.0.1 external edit |
||
---|---|---|---|
Line 43: | Line 43: | ||
==== 2ος τρόπος - iterator ==== | ==== 2ος τρόπος - iterator ==== | ||
- | Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω | + | Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω υλοποίηση |
<code java> | <code java> | ||
public void iterateList() { | public void iterateList() { | ||
Line 97: | 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 109: | Line 115: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | Στην συνέχεια βάλτε σχόλια στην γραμμή που υποδεικνύουν τα σχόλια και αφαιρέστε το τμήμα του κώδικα που είναι σε σχόλια. Μεταγλωττίστε και τρέξτε. Ποιό είναι το αποτέλεσμα αυτή την φορά; Γιατί συμβαίνει αυτό; | ||
+ | |||
+ | <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''. | * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#addAll%28java.util.Collection%29|addAll(Collection<?> c)]]** - Προσθέτει όλες τις εγγραφές που περιέχονται στο Collection ''c''. | ||
Line 195: | 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 200: | 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 207: | Line 227: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | <WRAP center 70% round tip> | ||
+ | Και εδώ ισχύει ότι αναφέραμε παραπάνω αναφορικά με την σύγκριση των //Collections//. Eάν η λίστα //sts// δημιουργηθεί από αντίγραφα των αντικειμένων της λίστας //stl//, η μέθοδος //removeAll// δεν θα αφαιρέσει τίποτα. | ||
+ | </WRAP> | ||