This shows you the differences between two versions of the page.
|
java:arrays [2017/02/14 08:02] gthanos |
java:arrays [2022/02/23 15:35] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Πίνακες ====== | ||
| - | Οι πίνακες στην γλώσσα προγραμματισμού **Java** ορίζονται σε αναλογία με την **C** ως ένα σύνολο τιμών του ιδίου τύπου δεδομένων του οποίου ο αριθμός των μελών ορίζεται κατά την αρχικοποίηση του πίνακα. Η αρχικοποίηση ενός πίνακα γίνεται με χρήση του τελεστή **new**, σε μία δήλωση της μορφής | ||
| - | |||
| - | <code java> | ||
| - | int [] anArray; | ||
| - | anArray = new int[5]; | ||
| - | int anotherArray[]; | ||
| - | anotherArray = new int[10]; | ||
| - | ή | ||
| - | int [] anArray = new int[5]; | ||
| - | int anotherArray[] = new int[10]; | ||
| - | </ | ||
| - | |||
| - | Ο παραπάνω κώδικας ορίζει δύο πίνακες τύπου **int** μεγέθους **5** και **10** αντίστοιχα. Παρατηρήστε ότι κατά τον ορισμό του πίνακα ο τελεστής **[]** μπορεί να τοποθετηθεί πριν ή μετά το όνομα της μεταβλητής. | ||
| - | |||
| - | <WRAP tip 80% round center> | ||
| - | Σημειώστε ότι κατά σύμβαση προτιμάται η τοποθέτηση του τελεστή **[]** πριν το όνομα της μεταβλητής, | ||
| - | </ | ||
| - | |||
| - | Εναλλακτικά, | ||
| - | <code java> | ||
| - | int[] numbers = {1, | ||
| - | </ | ||
| - | |||
| - | Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων, | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | Μπορείτε να δείτε ενδεικτικά το παρακάτω πρόγραμμα, | ||
| - | |||
| - | <code java ArrayDemo.java> | ||
| - | class ArrayDemo { | ||
| - | public static void main(String[] args) { | ||
| - | int[] anArray; | ||
| - | |||
| - | anArray = new int[3]; | ||
| - | |||
| - | anArray[0] = 100; | ||
| - | anArray[1] = 200; | ||
| - | anArray[2] = 300; | ||
| - | | ||
| - | for(int i=0; i < anArray.length; | ||
| - | System.out.println(" | ||
| - | } | ||
| - | |||
| - | int j=0; | ||
| - | for(int element: anArray) { | ||
| - | System.out.println(" | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | <WRAP important 80% round center> | ||
| - | Οι πίνακες στη Java υλοποιούνται ως αντικείμενα (//θα τα δούμε αναλυτικά παρακάτω// | ||
| - | |||
| - | Κάθε αντικείμενο πίνακα έχει ένα πεδίο **length** που αποθηκεύει το μέγεθος του πίνακα (π.χ. δείτε στο πρόγραμμα '' | ||
| - | </ | ||
| - | |||
| - | <WRAP tip 80% round center> | ||
| - | Κατεβάστε και εκτελέστε το παραπάνω πρόγραμμα. Παρατηρήστε ότι η κλήση της μεθόδου **System.out.println** εκτυπώνει στην κονσόλα σας ένα αλφαριθμητικό κατά την εκτέλεση του προγράμματος ακολουθούμενο από χαρακτήρα αλλαγής γραμμής. Εναλλακτικά της **System.out.println** μπορείτε να χρησιμοποιείτε και την μέθοδο **System.out.print**, | ||
| - | </ | ||
| - | ===== Πίνακες δύο διαστάσεων ===== | ||
| - | |||
| - | Οι πίνακες δύο διαστάσεων ορίζονται σε αναλογία με τους πίνακες μίας διάστασης ως εξής: | ||
| - | |||
| - | <code java> | ||
| - | int [][] anArray; | ||
| - | anArray = new int[3][5]; | ||
| - | ή | ||
| - | int [][] anArray = new int[3][5]; | ||
| - | </ | ||
| - | |||
| - | Το παραπάνω παράδειγμα ορίζει ένα πίνακα διαστάσεων **3x5**. __Η ιδιαιτερότητα της Java σε σχέση με την C είναι ότι μπορούμε να έχουμε διαφορετικό αριθμό στηλών σε κάθε γραμμή του πίνακα__. Δείτε το παρακάτω πρόγραμμα που περιέχει ένα πίνακα δύο διαστάσεων. Στην πρώτη γραμμή του πίνακα έχουμε 3 στοιχεία, | ||
| - | <code java MultiDimArrayDemo.java> | ||
| - | class MultiDimArrayDemo { | ||
| - | public static void main(String[] args) { | ||
| - | String[][] names = { | ||
| - | {"Mr. ", "Mrs. ", "Ms. "}, | ||
| - | {" | ||
| - | }; | ||
| - | // Mr. Smith | ||
| - | System.out.println(names[0][0] + names[1][0]); | ||
| - | // Ms. Jones | ||
| - | System.out.println(names[0][2] + names[1][1]); | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | |||
| - | | Προηγούμενο: | ||