This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
java:jfc_intf_list [2015/03/16 18:17] gthanos created |
java:jfc_intf_list [2015/03/17 13:35] gthanos [Υλοποιήσεις] |
||
---|---|---|---|
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 που επιτρέπει την διάτρεξη της λίστας από το τέλος προς την αρχή, όπως παρακάτω. | ||
+ | |||
+ | <code java> | ||
+ | for (ListIterator<Type> it = list.listIterator(list.size()); it.hasPrevious(); ) { | ||
+ | Type t = it.previous(); | ||
+ | ... | ||
+ | } | ||
+ | </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, παρακάτω γίνεται μία ανάλυση των δύο υλοποιήσεων. | ||
+ | |||
+ | * Χρόνος αναζήτησης στοιχείου: Η ArrayList έχει σταθερό χρόνο αναζήτησης, ενώ η LinkedList έχει γραμμικό χρόνο αναζήτησης. | ||
+ | * Εισαγωγή στοιχείου στο τέλος: Και οι δύο έχουν τον ίδιο χρόνο εισαγωγής. | ||
+ | * Εισαγωγή στοιχείου στην αρχή ή στην μέση: Η ArrayList έχει γραμμικό χρόνο εισαγωγής ενώ η LinkedList έχει σταθερό χρόνο. | ||
+ | * Η LinkedList έχει τις επιπλέον μεθόδους addFirst, getFirst, removeFirst, addLast, getLast και removeLast. | ||
+ | * Η LinkedList υλοποιεί το Queue interface. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||