This shows you the differences between two versions of the page.
|
java:arrays [2022/02/23 15:27] gthanos |
java:arrays [2022/02/23 15:35] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Πίνακες ====== | ||
| - | Οι πίνακες στην γλώσσα προγραμματισμού **Java** ορίζονται ως ένα σύνολο τιμών του ιδίου τύπου δεδομένων του οποίου ο αριθμός των μελών ορίζεται κατά την αρχικοποίηση του πίνακα. Η αρχικοποίηση ενός πίνακα γίνεται μέσω του τελεστή **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 υλοποιούνται ως αντικείμενα. __Εφόσον αρχικοποιηθεί ένας πίνακας το μέγεθος του είναι αμετάβλητο__. | ||
| - | |||
| - | Κάθε αντικείμενο πίνακα έχει ένα // | ||
| - | </ | ||
| - | |||
| - | ===== Πίνακες αναφορικού τύπου ===== | ||
| - | |||
| - | Ας θεωρήσουμε το παρακάτω παράδειγμα κώδικα με βάση την κλάση **Rectangle** [[java: | ||
| - | |||
| - | <code java CreateRectanglesArray.java> | ||
| - | public class CreateRectanglesArray { | ||
| - | public static void main(String[] args) { | ||
| - | Rectangle [] rectangles = new Rectangle[4]; | ||
| - | Point originOne = new Point(23, 94); | ||
| - | Rectangle rectOne = new Rectangle(10, | ||
| - | |||
| - | rectangles[0] = rectOne; | ||
| - | rectangles[1] = rectOne; | ||
| - | rectangles[2] = new Rectangle(50, | ||
| - | rectangles[3] = new Rectangle(20, | ||
| - | | ||
| - | int i=0; | ||
| - | for(Rectangle rectangle : rectangles) { | ||
| - | String str = " | ||
| - | str = str + " | ||
| - | str = str + " | ||
| - | System.out.println(str); | ||
| - | } | ||
| - | | ||
| - | rectangles[2] = rectangles[3]; | ||
| - | } | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Στον παραπάνω κώδικα στην γραμμή '' | ||
| - | |||
| - | Εάν επιχειρήσουμε να σχεδιάσουμε το παραπάνω διάγραμμα αυτό θα δείχνει ως εξής: | ||
| - | |||
| - | |Αρχικά δημιουργείται ένας πίνακας που όλα τα στοιχεία του είναι **null**. | ||
| - | | {{ : | ||
| - | |||
| - | |||
| - | ===== Πίνακες δύο διαστάσεων ===== | ||
| - | |||
| - | Οι πίνακες δύο διαστάσεων ορίζονται σε αναλογία με τους πίνακες μίας διάστασης ως εξής: | ||
| - | |||
| - | <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." | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | == Επεξήγηση του παραπάνω κώδικα == | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | |||
| - | | Προηγούμενο: | ||