This shows you the differences between two versions of the page.
|
java:arrays [2018/02/12 14:32] 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**. Επιπλέον, | ||
| - | <code java MultiDimArrayDemo.java> | ||
| - | class MultiDimArrayDemo { | ||
| - | public static void main(String[] args) { | ||
| - | String [][] names; | ||
| - | names = new String[3][]; | ||
| - | names[0] = new String[3]; | ||
| - | names[1] = new String[5]; | ||
| - | names[2] = new String[4]; | ||
| - | | ||
| - | names[0][0]=" | ||
| - | names[1][0]=" | ||
| - | names[2][0]=" | ||
| - | | ||
| - | System.out.println(names[0][0] + names[1][1] + names[2][3] + " enters the room." | ||
| - | System.out.println(names[0][1] + names[1][3] + names[2][2] + " leaves the room." | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | |||
| - | | Προηγούμενο: | ||