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/22 18:51] gthanos [2ος τρόπος - iterator] |
java:jfc_intf_collection [2017/02/17 15:46] gthanos [Collection Interface] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Collection Interface ====== | + | ====== java.util.Collection ====== |
- | Το βασικό Interface στην Java το οποίο αποτελεί το ελάχιστον κοινό Interface των //Set//, //List//, //Queue//, //Dequeue//. | + | To interface Collection περιγράφει μία συλλογή στοιχείων ιδίου τύπου. Αποτελεί το ελάχιστο κοινό interface των [[java:jfc_intf_set|Set]], [[java:jfc_intf_list|List]], [[https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html|Queue]]. |
===== Διάτρεξη ενός Collection ===== | ===== Διάτρεξη ενός Collection ===== | ||
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> | ||