====== Interfaces ====== Παρακάτω δίνεται εποπτικά η λίστα με τα Interfaces που υποστηρίζει το **JCF**. {{ :java:jfc1.png?650 |}} Όπως βλέπετε, έχουμε δύο τύπους interfaces, //Collections// και //Maps//. Τα παραπάνω interfaces χρησιμοποιούν κατά κανόνα παραμετρικούς τύπους δεδομένων. Συνοπτικά τα interfaces έχουν ως εξής: * **Collection:** Το βασικό interface στην ιεραρχία των interfaces. Το συγκεκριμένο interface παρέχει κάποιες μεθόδους οι οποίες με την σειρά τους υλοποιούνται από άλλα Interfaces. Αποτελεί ένα σύνολο κοινών μεθόδων τις οποίες πρέπει να μοιράζονται τα παρακάτω interfaces που το κληρονομούν. Δεν υπάρχουν υλοποιήσεις κλάσεων για το συγκεκριμένο interface, αλλά μόνο για τους απογόνους αυτού. * **Set:** Πρόκειται για ένα Collection που δεν μπορεί να αποθηκεύσει δύο φορές το ίδιο αντικείμενο (τα στοιχεία του είναι μοναδικά). * **Sorted Set:** Ένα //Set// που διατηρεί τα δεδομένα του ταξινομημένα. Συνήθως υλοποιείται μέσω ενός δυαδικού δέντρου αναζητήσεως. * **List:** Πρόκειται για συνδεδεμένη λίστα. Χαρακτηριστικά της λίστας είναι ότι τα εξής: * τα στοιχεία διατηρούν τη σειρά με την οποία εισάγονται. * μπορούμε να προσθέσουμε στοιχεία σε οποιαδήποτε θέση (στην αρχή, στο τέλος ή ενδιάμεσα). * μπορούμε να διατρέξουμε τα στοιχεία της λίστας από την αρχή προς το τέλος ή από το τέλος προς την αρχή. * σε μία λίστα μπορούμε να εισάγουμε ένα αντικείμενο περισσότερες από μία φορές. * **Queue:** Υλοποίησης ενός FIFO Queue. * **Dequeue:** Υλοποίηση ενός LIFO (Last In, First Out) Queue. * **Map:** Ένα αντικείμενο που αντιστοιχεί μοναδικά κλειδιά σε τιμές. * **Sorted Map:** Ένα //Map// που διατηρεί την σειρά των δεδομένων του με βάση συγκεκριμένους κανόνες ταξινόμησης. Συνήθως υλοποιείται μέσω ενός δυαδικού δέντρου αναζητήσεως. Στα παραδείγματα που ακολουθούν χρησιμοποιείται για την αποθήκευση δεδομένων η παρακάτω κλάση ''Student'': public class Student { private String firstName; private String lastName; public Student(String fname, String lname) { firstName = fname; lastName = lname; } public void setFirstName( String firstName ) { this.firstName = firstName; } public void setLastName( String lastName ) { this.lastName = lastName; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public String toString() { return firstName+" "+lastName; } } |Προηγούμενο: [[:java:collections_intro | Collections ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:jfc_intf_sort | Ανίχνευση ισότητας και σύγκριση αντικειμένων ]] |