Α ν ύ σ μ α τ α - V e c t o r s

Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 11: Vectors (διανύσματα)

Generics και ArrayLists

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

4 Συλλογές Αντικειμένων

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Πρότυπα και διανύσματα

Wrapper Classes Τοποθέτηση Δεδομένων Κλήση Μεθόδων. Παναγιώτης Σφέτσος, PhD

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Αλγοριθμική και Προγραμματισμός

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

Week. 6: Java Collections

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Βασικά Στοιχεία της Java

Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Week 7: Java Collection Classes

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Αλγοριθμική και Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Οντοκεντρικός Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος.

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

Mεταβλητές (variables) και Σταθερές (constants)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Κλάσεις και Αντικείµενα

2.1 Αντικειµενοστρεφής προγραµµατισµός

Αντικειμενοστρεφής Προγραμματισμός

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

ΣΥΜΒΟΛΟΣΕΙΡΕΣ (Strings) Ο ΑΤΔ Συµβολοσειρά Μία συµβολοσειρά είναι µία ακολουθία χαρακτήρων. Bασικές πράξεις : 1. Δηµιουργία. 2. Μήκος. 3.

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες Μέθοδοι tostring και equals Αντικείμενα μέσα σε αντικείμενα

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Πολλές φορές έχουμε πολλές μεταβλητές του ίδιου τύπου που συσχετίζονται και θέλουμε να τις βάλουμε μαζί.

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Διαδικασιακός Προγραμματισμός

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Οντοκεντρικός Προγραμματισμός

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Transcript:

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Προγραμματισμός H/Y-I Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Α ν ύ σ μ α τ α - V e c t o r s Η κλάση Vector μας βοηθά να δημιουργήσουμε δυναμικούς πίνακες, δηλαδή πίνακες των οποίων το μέγεθος μπορεί να αλλάξει δυναμικά. Ένας τέτοιος δυναμικός πίνακας αποθηκεύει μια λίστα αναφορών σε αντικείμενα. Η αλλαγή του μεγέθους του επιτυγχάνεται με τα πεδία capacity και capacityincrement. Δηλαδή, όταν ορίζεται ένα Vector στην ουσία δημιουργείται ένας πίνακας αντικειμένων με αρχική χωρητικότητα ( initialcapacity ). Όταν γεμίζει αυτός ο πίνακας, τότε αυξάνει τo μέγεθος του buffer σύμφωνα με την τιμή του πεδίου capacityincrement. Σε ένα Vector, δεν μπορεί να αποθηκευτεί με άμεσο τρόπο ένας βασικός τύπος της Java, αλλά με έμμεσο τρόπο μόνο αν τοποθετηθεί σε ένα αντικείμενο. Για παράδειγμα, για την αποθήκευση ενός ακέραιου αριθμού πρέπει να δημιουργήσουμε ένα αντικείμενο με τη χρήση της κλάσης Integer (π.χ. new Integer(10)). Βέβαια καλύτερος τρόπος είναι η δημιουργία δικής μας κλάσης, ώστε να μπορούμε να αλλάξουμε την τιμή του βασικού τύπου. Για να ορίσουμε και να χρησιμοποιήσουμε ένα Vector πρέπει να εισάγουμε πρώτα την εντολή: import java.util.vector; ή Οι δομητές του Vector 1) Δομητής χωρίς παράμετρο, κατασκευάζει ένα κενό Vector: Vector v; //ορισμός μεταβλητής τύπου Vector v = new Vector(); // ορισμός ενός κενού Vector αντικειμένων ή Vector v = new Vector(); Παναγιώτης Σφέτσος, Θεωρία Java 1

2) Δομητής με παράμετρο, κατασκευάζει ένα Vector με αρχικό μέγεθος: Vector v = new Vector(200); // initialcapacity = 200 3) Δομητής με παράμετρους, κατασκευάζει ένα Vector με αρχικό μέγεθος και βήμα αύξησης: Vector v = new Vector(200, 1); // initialcapacity = 200, capacityincrement =1 4) Δομητής για δημιουργία Vector από Strings. Vector<String> v = new Vector<String>(); Οι κυριότερες μέθοδοι επεξεργασίας των στοιχείων ενός Vector Μέθοδος Περιγραφή v.add(o) Προσθέτει ένα αντικείμενο o στο τέλος του Vector v. v.add(i, o) Εισάγει ένα αντικείμενο o στη θέση i, μετακινώντας τα στοιχεία προς τα επάνω. v.addelement(o) Προσθέτει ένα αντικείμενο o, αυξάνοντας το μέγεθος κατά 1. v.capacity() Επιστρέφει την τρέχουσα χωρητικότητα του Vector v. v.clear() Διαγράφει όλα τα στοιχεία από ένα Vector v. v.clone() Επιστρέφει ένα αντίγραφο του Vector. v.contains(o) Επιστρέφει true να ένα Vector v περιέχει το αντικείμενο o. v.elementat(i) Επιστρέφει το στοιχείο στη συγκεκριμένη θέση i. v.firstelement() Επιστρέφει το πρώτο στοιχείο. v.get(i) Επιστρέφει το αντικείμενο στη θέση i. v.isempty() v.lastelement() v.remove(i) v.remove(ο) Ελέγχει αν ένα Vector έχει στοιχεία ή όχι. Επιστρέφει το τελευταίο στοιχείο. Διαγράφει το στοιχείο στη θέση i, μετακινώντας τα στοιχεία προς τα κάτω. Διαγράφει το πρώτο στοιχείο (αντικείμενο ο) που θα βρει στο Vector. v.removeelementat(i) Διαγράφει το στοιχείο στη θέση i. v.removerange(i, j) Διαγράφει από τη θέση i έως τη θέση j. v.removeallelements() Διαγράφει όλα τα στοιχεία του Vector. v.set(i, o) Αντικαθιστά το αντικείμενο ο στη θέση i. v.setelementat(o, i) Τοποθετεί το αντικείμενο ο στη θέση i. v.setsize(i) Ορίζει νέο μέγεθος του Vector v. Παναγιώτης Σφέτσος, Θεωρία Java 2

v.size() Επιστρέφει τον αριθμό των στοιχείων του Vector v. v.tostring() Επιστρέφει μία συμβολοσειρά που αναπαριστά το στοιχεία του Vector (τα στοιχεία σε μορφή Strings). Η είσοδος των στοιχείων Η χρήση της μεθόδου addelement() μπορεί να χρησιμοποιηθεί για την είσοδο αντικειμένων βασικών τύπων. Παραδείγματα: Για να τοποθετήσουμε ένα στοιχείο σε κάποια θέση του Vector αλλά και να λάβουμε ένα στοιχείο του από συγκεκριμένη θέση, χρησιμοποιούμε επίσης τις μεθόδους setelementat() και elementat(). Ο παρακάτω πίνακας δείχνει τις διαφορές στο στυλ χειρισμού των Vectors σε σχέση με τους πίνακες. array s = a[i]; vector s = v.elementat(i); a[i] = s; v.setelementat(s, i); Ας δούμε ένα μικρό πρόγραμμα που εισάγει αριθμητικά αντικείμενα στο Vector. Με την εντολή: System.out.println(v), θα εμφανίσουμε τα στοιχεία του Vector. class VectorTest { Vector v = new Vector(); System.out.println(v); Το αποτέλεσμα: Παναγιώτης Σφέτσος, Θεωρία Java 3

Ένας άλλος τρόπος εμφάνισης των στοιχείων του Vector (ο πιο συνηθισμένος ) είναι η χρήση της εντολής for: (προσέξτε τη χρήση της size()) Παράδειγμα με την εντολή for class VectorTest3 { Vector v = new Vector(10); Το αποτέλεσμα: Παράδειγμα: Στο παρακάτω παράδειγμα θα δούμε την υλοποίηση μερικών από τις σημαντικότερες μεθόδους της Vector. class VectorTest1 { Vector v = new Vector(1); System.out.println("H arxiki xoritikotita einai: " + v.capacity()); String s1 = "Nikos"; String s2 = "Takis"; String s3 = "Giannis"; Integer t = new Integer(4); System.out.println("Xrisi tis addelement()..."); v. addelement(s1); v. addelement(s2); Παναγιώτης Σφέτσος, Θεωρία Java 4

v. addelement(s3); System.out.println("Xrisi tis insertelementat()..."); v.insertelementat(t, 2); System.out.println("H nea xoritikotita einai: " + v.capacity()); System.out.println("To stoixeio sti 4 - thesi (i=3): " + v.elementat(3)); System.out.println("To proto stoixeio einai (i=0): " + v.firstelement()); System.out.println("To stoixeio 1 - me tin v.get(): " + v.get(1)); System.out.println("Topothetisi tou Tasos sti thesi-2 me ti setelementat() " ); v.setelementat("tasos", 2); System.out.println("Diagrafi tou 4ou-stoixeiou (i=3) "); v.remove(3); Τα αποτελέσματα: Παναγιώτης Σφέτσος, Θεωρία Java 5

Άλλοι τρόποι προσπέλασης των στοιχείων του Vector Μπορεί η εντολή - for να χρησιμοποιείται περισσότερο για την προσπέλαση των στοιχείων ενός Vector, αλλά υπάρχουν και δύο άλλοι τρόποι προσπέλασης που θα αναφέρουμε εδώ. Ο πρώτος τρόπος είναι με τη χρήση ενός ListIterator. Αυτός ο τρόπος αντιστοιχεί στη χρήση της εντολής foreach άλλων γλωσσών προγραμματισμού για την προσπέλαση στοιχείων συλλογών. Στο παρακάτω παράδειγμα θα εμφανίσουμε όλα τα στοιχεία ενός Vector (αντικειμένων Strings) χρησιμοποιώντας δύο μεθόδους: την hasnext(), που επιστρέφει true αν υπάρχουν περισσότερα στοιχεία, και την next(), που επιστρέφει το επόμενο στοιχείο. ListIterator it = v.listiterator(); while (it.hasnext()) { System.out.println((String)it.next()); Ο δεύτερος τρόπος παρέχεται από τη διεπαφή Enumeration: Enumeration e=vector.elements(); while(e.hasmoreelements()) { System.out.println("The elements are: " + e.nextelement()); Παραδείγματα Στο πρώτο παράδειγμα αυτό θα δημιουργήσουμε το Vector όπως και στο πρώτο παράδειγμα αλλά η εμφάνιση των στοιχείων θα γίνει με τη χρήση της ListIterator. class VectorTest3 { Vector v = new Vector(10); ListIterator it = v.listiterator(); while (it.hasnext()) { System.out.println(it.next()); Παναγιώτης Σφέτσος, Θεωρία Java 6

Το αποτέλεσμα: Στο δεύτερο παράδειγμα θα χρησιμοποιήσουμε το ίδιο Vector (ίδια δεδομένα), όμως η εμφάνιση των στοιχείων θα γίνει με την χρήση της διεπαφής Enumeration. class VectorTest3 { Vector v = new Vector(10); Enumeration e=v.elements(); System.out.println("The elements of vector: " + v); while(e.hasmoreelements()){ System.out.println("The elements are: " + e.nextelement()); Το αποτέλεσμα: Αντιγραφή των Vectors Η αντιγραφή των Vectors γίνεται με την μέθοδο clone(), για την αντιγραφή των στοιχείων από το ένα στο άλλο. Vector a = new Vector(); Vector b = a.clone(); Παναγιώτης Σφέτσος, Θεωρία Java 7

Παράδειγμα: import java.util.vector; public class clonetest { Vector a = new Vector(); a.addelement(new Integer(100)); a.addelement(new Integer(200)); a.addelement(new Integer(300)); Vector b = (Vector) a.clone(); System.out.println("O Vector b einai to antigrafo (clone) tou a: "); System.out.println(b); System.out.println("O Vector c = a: "); Vector c = b; System.out.println(c); Το αποτέλεσμα: Παναγιώτης Σφέτσος, Θεωρία Java 8