This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:arrays [2016/02/22 09:17] gthanos [Πίνακες δύο διαστάσεων] |
java:arrays [2022/02/23 15:27] gthanos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Πίνακες ====== | ====== Πίνακες ====== | ||
| - | Οι πίνακες στην γλώσσα προγραμματισμού **Java** ορίζονται | + | Οι πίνακες στην γλώσσα προγραμματισμού **Java** ορίζονται ως ένα σύνολο τιμών του ιδίου τύπου δεδομένων του οποίου ο αριθμός των μελών ορίζεται κατά την αρχικοποίηση του πίνακα. Η αρχικοποίηση ενός πίνακα γίνεται μέσω του τελεστή **new**, |
| <code java> | <code java> | ||
| Line 16: | Line 16: | ||
| <WRAP tip 80% round center> | <WRAP tip 80% round center> | ||
| - | Σημειώστε ότι κατά σύμβαση προτιμάται η τοποθέτηση του τελεστή **[]** πριν το όνομα της μεταβλητής, | + | Προτιμάται η τοποθέτηση του τελεστή **[]** πριν το όνομα της μεταβλητής, |
| </ | </ | ||
| + | |||
| + | Εναλλακτικά, | ||
| + | <code java> | ||
| + | int[] numbers = {1, | ||
| + | </ | ||
| + | |||
| Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων, | Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων, | ||
| Line 27: | Line 33: | ||
| class ArrayDemo { | class ArrayDemo { | ||
| public static void main(String[] args) { | public static void main(String[] args) { | ||
| - | // declares an array of integers | ||
| int[] anArray; | int[] anArray; | ||
| - | // allocates memory for 10 integers | ||
| anArray = new int[3]; | anArray = new int[3]; | ||
| Line 38: | Line 42: | ||
| | | ||
| for(int i=0; i < anArray.length; | for(int i=0; i < anArray.length; | ||
| - | System.out.println(" | + | System.out.println(" |
| } | } | ||
| + | |||
| + | int j=0; | ||
| + | for(int element: anArray) { | ||
| + | System.out.println(" | ||
| + | } | ||
| } | } | ||
| } | } | ||
| Line 45: | Line 54: | ||
| <WRAP important 80% round center> | <WRAP important 80% round center> | ||
| - | Οι πίνακες στη Java υλοποιούνται ως αντικείμενα | + | Οι πίνακες στη Java υλοποιούνται ως αντικείμενα. __Εφόσον αρχικοποιηθεί ένας πίνακας το μέγεθος του είναι αμετάβλητο__. |
| - | Κάθε αντικείμενο πίνακα έχει ένα πεδίο **length** που αποθηκεύει το μέγεθος του πίνακα | + | Κάθε αντικείμενο πίνακα έχει ένα |
| </ | </ | ||
| - | <WRAP tip 80% round center> | + | ===== Πίνακες αναφορικού τύπου ===== |
| - | Κατεβάστε | + | |
| - | </ | + | Ας θεωρήσουμε το παρακάτω παράδειγμα |
| + | |||
| + | <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 + " | ||
| + | | ||
| + | } | ||
| + | |||
| + | rectangles[2] = rectangles[3]; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | Στον παραπάνω κώδικα στην | ||
| + | |||
| + | Εάν επιχειρήσουμε να σχεδιάσουμε το παραπάνω διάγραμμα αυτό θα δείχνει ως εξής: | ||
| + | |||
| + | |Αρχικά | ||
| + | | {{ : | ||
| + | |||
| ===== Πίνακες δύο διαστάσεων ===== | ===== Πίνακες δύο διαστάσεων ===== | ||
| Line 64: | Line 108: | ||
| </ | </ | ||
| - | Το παραπάνω παράδειγμα ορίζει ένα πίνακα διαστάσεων **3x5**. | + | Το παραπάνω παράδειγμα ορίζει ένα πίνακα διαστάσεων **3x5**. |
| <code java MultiDimArrayDemo.java> | <code java MultiDimArrayDemo.java> | ||
| class MultiDimArrayDemo { | class MultiDimArrayDemo { | ||
| public static void main(String[] args) { | public static void main(String[] args) { | ||
| - | String[][] names = { | + | String [][] names; |
| - | {"Mr. ", "Mrs. ", "Ms. "}, | + | |
| - | {"Smith", "Jones"} | + | |
| - | | + | names[1] = new String[5]; |
| - | | + | names[2] = new String[4]; |
| - | System.out.println(names[0][0] + names[1][0]); | + | |
| - | // Ms. Jones | + | names[0][0]="Mr. "; names[0][1]="Mrs. "; names[0][2]="Ms. "; |
| - | System.out.println(names[0][2] + names[1][1]); | + | |
| + | | ||
| + | |||
| + | 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."); | ||
| } | } | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | == Επεξήγηση του παραπάνω κώδικα == | ||
| + | | '' | ||
| + | | '' | ||
| - | | Προηγούμενο: | + | | Προηγούμενο: |