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 [2020/03/15 18:54]
gthanos [Υλοποιήσεις]
java:jfc_intf_list [2021/05/22 03:21]
Line 1: Line 1:
-====== java.util.List ====== 
- 
-Το interface [[http://docs.oracle.com/javase/7/docs/api/java/util/List.html|List]] υλοποιεί μία διπλά διασυνδεδεμένη λίστα. Η βασικές διαφορές σε σχέση με το [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|Set]] interface είναι ότι ένα αντικείμενο μπορεί να εμφανίζεται περισσότερες από μία φορές μέσα στη λίστα. Επίσης η σειρά των αντικειμένων στη λίστα διατηρείται και είναι η σειρά με την οποία εισήχθησαν (όλα τα νέα αντικείμενα εισάγονται στο τέλος της λίστας). Μπορείτε να σκεφτείτε την λίστα σαν ένα πίνακα, όπου έχετε πρόσβαση στο i-στο στοιχείο του. 
- 
-Το interface //List// ορίζει τις εξής επιπλέον μεθόδους σε σχέση με το interface //Collection//. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/List.html#get(int)|get(int index)]] - ** Επιστρέφει την τιμή στην θέση //index//. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/List.html#indexOf(java.lang.Object)|indexOf(Object o)]] - ** Επιστρέφει την 1η θέση του αντικειμένου στην λίστα ή -1 αν δεν περιέχεται το αντικείμενο. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/List.html#lastIndexOf(java.lang.Object)|lastIndexOf(Object o)]] - ** Επιστρέφει την τελευταία θέση του αντικειμένου στην λίστα ή -1 αν δεν περιέχεται το αντικείμενο. 
-  * **[[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#listIterator()|listIterator()]] επιστρέφει ένα [[http://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html|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// έχει σταθερό χρόνο. 
-  * Η [[https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html|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. 
-  * Η [[https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html|LinkedList]] υλοποιεί το [[https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html|Queue]] interface. 
- 
- 
-|Προηγούμενο: [[:java:jfc_intf_set | Interface java.util.Set ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:jfc_intf_map| Interface java.util.Map ]] | 
- 
- 
- 
- 
- 
- 
  
java/jfc_intf_list.txt · Last modified: 2021/05/22 03:21 (external edit)