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_list [2015/03/16 18:24] gthanos |
java:jfc_intf_list [2015/03/23 03:36] gthanos [java.util.List] |
||
---|---|---|---|
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 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]]. | + | ===== Υλοποιήσεις ===== |
+ | |||
+ | |||
+ | Υπάρχουν δύο βασικές κλάσεις που υλοποιούν το συγκεκριμένο 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// έχει σταθερό χρόνο. | ||
+ | * Η //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// υλοποιεί το Queue interface. | ||
+ | |||
+ | |||