User Tools

Site Tools


java:jfc_intf_collection

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:jfc_intf_collection [2015/03/22 19:34]
gthanos
java:jfc_intf_collection [2021/05/22 02:47]
Line 1: Line 1:
-====== Collection Interface ====== 
- 
-Το βασικό Interface στην Java το οποίο αποτελεί το ελάχιστον κοινό Interface των //Set//, //List//, //Queue//, //Dequeue//. 
- 
-===== Διάτρεξη ενός Collection ===== 
- 
-==== 1ος τρόπος - for() ==== 
- 
-<code java StudentCollection.java> 
-import java.util.*; 
-import java.lang.*; 
- 
-public class StudentCollection { 
- 
-  private Collection<Student> students; 
-   
-  public StudentCollection() { 
-    students = new LinkedList<Student>(); 
-    populateList(); 
-  } 
-   
-  public final void populateList() { 
-    students.add(new Student("John", "Smith")); 
-    students.add(new Student("Stanley", "Peters")); 
-    students.add(new Student("Edgar", "Bloch")); 
-    students.add(new Student("Suzan", "Miles")); 
-    students.add(new Student("Mary", "Poppins")); 
-  } 
-   
-  public void iterateList() {   
-    for(Student st: students) { 
-    System.out.println(st.toString()); 
-    } 
-  } 
-   
-  public static void main(String args[]) { 
-    StudentCollection stl = new StudentCollection(); 
-    stl.iterateList(); 
-  } 
- 
-</code> 
- 
-==== 2ος τρόπος - iterator ==== 
- 
-Μπορείτε να αντικαταστήσετε την ''iterateList'' με την παρακάτω υλοποίηση 
-<code java> 
-  public void iterateList() {   
-    Iterator<Student> it = students.iterator(); 
-    while( it.hasNext() ) { 
-      System.out.println(it.next().toString()); 
-    } 
-  } 
-</code> 
- 
-Συνιστάται ο 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. 
- 
-<code java StudentCollection.java> 
-import java.util.*; 
-import java.lang.*; 
- 
-import java.util.*; 
-import java.lang.*; 
- 
-public class StudentCollection { 
- 
-  private Collection<Student> students; 
-   
-  public StudentCollection() { 
-    students = new LinkedList<Student>(); 
-    populateList(); 
-  } 
-   
-  public final void populateList() { 
-    students.add(new Student("John", "Smith")); 
-    students.add(new Student("Stanley", "Peters")); 
-    students.add(new Student("Edgar", "Bloch")); 
-    students.add(new Student("Suzan", "Miles")); 
-    students.add(new Student("Mary", "Poppins")); 
-  } 
-   
-  public Collection<Student> getStudents() { 
-    return students; 
-  } 
-   
-  public static void main(String args[]) { 
-    StudentCollection stl = new StudentCollection();     
-    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) ) { 
-       System.out.println("containsAll:TRUE"); 
-    } 
-    else { 
-       System.out.println("containsAll:FALSE"); 
-    } 
-     
-  } 
-} 
-</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''. 
- 
-<code java StudentCollection.java> 
-import java.util.*; 
-import java.lang.*; 
-import java.util.*; 
-import java.lang.*; 
- 
-public class StudentCollection { 
- 
-  private Collection<Student> students; 
-   
-  public StudentCollection() { 
-    students = new LinkedList<Student>(); 
-    populateList(); 
-  } 
-   
-  public final void populateList() { 
-    students.add(new Student("John", "Smith")); 
-    students.add(new Student("Stanley", "Peters")); 
-    students.add(new Student("Edgar", "Bloch")); 
-    students.add(new Student("Suzan", "Miles")); 
-    students.add(new Student("Mary", "Poppins")); 
-  } 
-   
-  public Collection<Student> getStudents() { 
-    return students; 
-  } 
-  
-  public void iterateList() {   
-    for(Student st: students) { 
-      System.out.println(st.toString()); 
-    } 
-  } 
-   
-  public static void main(String args[]) { 
-    StudentCollection stl = new StudentCollection();     
-    Collection <Student> sts = new LinkedList<Student>(); 
-    sts.add(new Student("Lena", "Travolta")); 
-    sts.add(new Student("George", "Thanos")); 
-     
-    stl.getStudents().addAll(sts); 
-    stl.iterateList();     
-  } 
- 
-</code> 
- 
-  * **[[https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#removeAll(java.util.Collection)|removeAll(Collection<?> c)]]** - Αφαιρεί όλες τις εγγραφές που περιέχονται στο Collection ''c''. 
-<code java StudentCollection.java> 
-import java.util.*; 
-import java.lang.*; 
- 
-import java.util.*; 
-import java.lang.*; 
- 
-public class StudentCollection { 
- 
-  private Collection<Student> students; 
-   
-  public StudentCollection() { 
-    students = new LinkedList<Student>(); 
-    populateList(); 
-  } 
-   
-  public final void populateList() { 
-    students.add(new Student("John", "Smith")); 
-    students.add(new Student("Stanley", "Peters")); 
-    students.add(new Student("Edgar", "Bloch")); 
-    students.add(new Student("Suzan", "Miles")); 
-    students.add(new Student("Mary", "Poppins")); 
-  } 
-   
-  public Collection<Student> getStudents() { 
-    return students; 
-  } 
-   
-  public void iterateList() {   
-    for(Student st: students) { 
-      System.out.println(st.toString()); 
-    } 
-  } 
-   
-  public static void main(String args[]) { 
-    StudentCollection stl = new StudentCollection();     
-    Collection <Student> sts = new LinkedList<Student>(); 
-     
-    //comment for statement 
-    int i=0; 
-    for(Student st : stl.getStudents()) { 
-      sts.add(st); 
-      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.iterateList(); 
-     
-  } 
- 
-</code> 
- 
-<WRAP center 70% round tip> 
-Και εδώ ισχύει ότι αναφέραμε παραπάνω αναφορικά με την σύγκριση των //Collections//. Eάν η λίστα //sts// δημιουργηθεί από αντίγραφα των αντικειμένων της λίστας //stl//, η μέθοδος //removeAll// δεν θα αφαιρέσει τίποτα. 
-</WRAP> 
- 
- 
  
java/jfc_intf_collection.txt · Last modified: 2021/05/22 02:47 (external edit)