java:jfc_intf_list

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_list [2015/03/17 13:31]
gthanos
java:jfc_intf_list [2017/05/12 13:29] (current)
gthanos [Υλοποιήσεις]
Line 1: Line 1:
 ====== java.util.List ====== ====== java.util.List ======
  
-Το interface //List// υλοποιεί μία διπλά διασυνδεδεμένη λίστα. Η βασικές διαφορές σε σχέση με το //Set// interface είναι ότι ένα αντικείμενο μπορεί να εμφανίζεται περισσότερες από μία φορές μέσα στη λίστα. Επίσης η σειρά των αντικειμένων στη λίστα διατηρείται και είναι η σειρά με την οποία εισήχθησαν (όλα τα νέα αντικείμενα εισάγονται στο τέλος της λίστας).+Το interface //List// υλοποιεί μία διπλά διασυνδεδεμένη λίστα. Η βασικές διαφορές σε σχέση με το //Set// interface είναι ότι ένα αντικείμενο μπορεί να εμφανίζεται περισσότερες από μία φορές μέσα στη λίστα. Επίσης η σειρά των αντικειμένων στη λίστα διατηρείται και είναι η σειρά με την οποία εισήχθησαν (όλα τα νέα αντικείμενα εισάγονται στο τέλος της λίστας). Μπορείτε να σκεφτείτε την λίστα σαν ένα πίνακα μεταβλητού μεγέθους,​ όπου έχετε πρόσβαση στο i-στο στοιχείο του.
  
 Το interface //List// ορίζει τις εξής επιπλέον μεθόδους σε σχέση με το interface //​Collection//​. Το interface //List// ορίζει τις εξής επιπλέον μεθόδους σε σχέση με το interface //​Collection//​.
Line 9: Line 9:
   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​List.html#​subList(int,​%20int)|subList(int fromIndex, int toIndex)]] - ** Επιστρέφει μία υπολίστα της αρχικής λίστας,​ από //​fromIndex//​ έως //​toIndex//​.   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​List.html#​subList(int,​%20int)|subList(int fromIndex, int toIndex)]] - ** Επιστρέφει μία υπολίστα της αρχικής λίστας,​ από //​fromIndex//​ έως //​toIndex//​.
   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​List.html#​set(int,​%20E)|set(int index, E element)]] -** Αντικαθιστά το αντικείμενο στην θέση //index// με το //element// επιστρέφοντας το αντικείμενο που ήταν αρχικά αποθηκευμένο. Εάν το //index// που δίνεται είναι εκτός των ορίων της λίστας throws //​IndexOutOfBoundsException//​.   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​List.html#​set(int,​%20E)|set(int index, E element)]] -** Αντικαθιστά το αντικείμενο στην θέση //index// με το //element// επιστρέφοντας το αντικείμενο που ήταν αρχικά αποθηκευμένο. Εάν το //index// που δίνεται είναι εκτός των ορίων της λίστας throws //​IndexOutOfBoundsException//​.
-  * Η μέθοδος [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​List.html#​listIterator()|listIterator()]] επιστρέφει ένα ListIterator object που επιτρέπει την διάτρεξη της λίστας από το τέλος προς την αρχή, όπως παρακάτω.+  * Η μέθοδος ​**[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​List.html#​listIterator()|listIterator()]]** επιστρέφει ένα ​**[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​ListIterator.html|ListIterator]]** ​object που επιτρέπει την διάτρεξη της λίστας από το τέλος προς την αρχή, όπως παρακάτω.
  
 <code java> <code java>
Line 18: Line 18:
 </​code>​ </​code>​
  
-==== Υλοποιήσεις ====+===== Υλοποιήσεις ​=====
  
  
-Υπάρχουν δύο βασικές κλάσεις που υλοποιούν το συγκεκριμένο interface, [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​ArrayList.html|ArrayList]] και [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​LinkedList.html|LinkedList]]. Κάθε μία υλοποίηση έχει θετικά και αρνητικά σημεία. Συνήθως χρησιμοποιούμε την ArrayList, παρακάτω γίνεται μία ανάλυση των δύο υλοποιήσεων.+Υπάρχουν δύο βασικές κλάσεις που υλοποιούν το συγκεκριμένο interface, [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​ArrayList.html|ArrayList]] και [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​LinkedList.html|LinkedList]]. Κάθε μία υλοποίηση έχει θετικά και αρνητικά σημεία. Συνήθως χρησιμοποιούμε την ArrayList, παρακάτω γίνεται ​σύντομη απαρίθμηση των θετικών και αρνητικών στοιχείων ​των δύο υλοποιήσεων.
  
-  * Χρόνος αναζήτησης στοιχείου:​ Η ArrayList έχει σταθερό χρόνο αναζήτησης,​ ενώ η LinkedList έχει γραμμικό χρόνο αναζήτησης. +  ​* **Χρόνος αναζήτησης στοιχείου:​** Η //ArrayList// έχει σταθερό χρόνο αναζήτησης,​ ενώ η //LinkedList// έχει γραμμικό χρόνο αναζήτησης. 
-  * Εισαγωγή στοιχείου στο τέλος: Και οι δύο έχουν τον ίδιο χρόνο εισαγωγής. +  ​* **Εισαγωγή στοιχείου στο τέλος:** Και οι δύο έχουν τον ίδιο χρόνο εισαγωγής. 
-  * Εισαγωγή στοιχείου στην αρχή ή στην μέση: Η ArrayList έχει γραμμικό χρόνο εισαγωγής ενώ η LinkedList έχει σταθερό χρόνο. +  ​* **Εισαγωγή στοιχείου στην αρχή ή στην μέση:** Η //ArrayList// έχει γραμμικό χρόνο εισαγωγής ​ως προς το μέγεθος της λίστας, ​ενώ η //LinkedList// έχει σταθερό χρόνο. 
-  * Η LinkedList έχει τις επιπλέον μεθόδους ποου+  * Η //LinkedList// έχει τις επιπλέον μεθόδους ​[[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​LinkedList.html#​addFirst-E-|addFirst]],​ [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​LinkedList.html#​getFirst--|getFirst]],​ [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​LinkedList.html#​removeFirst--|removeFirst]],​ [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​LinkedList.html#​addLast-E-|addLast]],​ getLast και removeLast. 
 +  * Η //​LinkedList//​ υλοποιεί το [[http://​docs.oracle.com/​javase/​8/​docs/​api/​java/​util/​Queue.html|Queue]] interface.
  
  
java/jfc_intf_list.1426599105.txt.gz · Last modified: 2016/02/26 11:15 (external edit)