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
Next revision Both sides next revision
java:jfc_intf_collection [2015/03/16 16:17]
gthanos
java:jfc_intf_collection [2015/03/22 19:26]
gthanos
Line 1: Line 1:
 ====== Collection Interface ====== ====== Collection Interface ======
  
-Το βασικό Interface στην Java το οποίο αποτελεί το ελάχιστον κοινό Interface των //Set//, //List//, //Queue//, //Dequeue/.+Το βασικό Interface στην Java το οποίο αποτελεί το ελάχιστον κοινό Interface των //Set//, //List//, //Queue//, //Dequeue//.
  
 ===== Διάτρεξη ενός Collection ===== ===== Διάτρεξη ενός Collection =====
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.
 +
  
 ===== Εργασίες με πολλαπλές εγγραφές ===== ===== Εργασίες με πολλαπλές εγγραφές =====
  
-==== containsAll(Collection<?>​ c) ====+  * **[[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% rounded 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>​();​ 
 +    int i=0; 
 +    for(Student st : stl.getStudents()) { 
 +      sts.add(st);​ 
 +      if(++i==2) break; 
 +    } 
 +     
 +    stl.getStudents().removeAll(sts);​ 
 +    stl.iterateList();​ 
 +     
 +  } 
 +}  
 +</​code>​ 
  
  
java/jfc_intf_collection.txt · Last modified: 2017/02/17 16:29 by gthanos