java:arrays

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
java:arrays [2015/02/06 13:59]
gthanos created
java:arrays [2016/02/26 11:15]
127.0.0.1 external edit
Line 1: Line 1:
 ====== Πίνακες ====== ====== Πίνακες ======
  
-Οι πίνακες στην γλώσσα προγραμματισμού Java ορίζονται σε αναλογία με την C ως ένα σύνολο τιμών του ιδίου τύπου δεδομένων του οποίου ο αριθμός των μελών είναι προαποφασισμένος και ​δεν αλλάζει. ​+Οι πίνακες στην γλώσσα προγραμματισμού ​**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]; 
 +</​code>​ 
 + 
 +Ο παραπάνω κώδικας ορίζει δύο πίνακες τύπου **int** μεγέθους **5** και **10** αντίστοιχα. Παρατηρήστε ότι κατά τον ορισμό του πίνακα ο τελεστής **[]** μπορεί να τοποθετηθεί πριν ή μετά το όνομα της μεταβλητής. 
 + 
 +<WRAP tip 80% round center>​ 
 +Σημειώστε ότι κατά σύμβαση προτιμάται η τοποθέτηση του τελεστή **[]** πριν το όνομα της μεταβλητήςκαι ​όχι μετά. 
 +</​WRAP>​ 
 + 
 +Εναλλακτικά, μπορείτε να ορίσετε το μέγεθος του πίνακα ορίζοντας και τα περιεχόμενα του στην δήλωση ορισμού του, όπως στο παρακάτω παράδειγμα:​ 
 +<code java> 
 +int[] numbers = {1,​2,​3,​4,​5,​6,​7,​8,​9,​10};​ 
 +</​code>​ 
 + 
 +Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων,​ η αρίθμηση των στοιχείων του είναι **0-9**, όπως φαίνεται στο παρακάτω σχήμα.
  
 {{  :​java:​objects-tenelementarray.gif ​ }} {{  :​java:​objects-tenelementarray.gif ​ }}
  
-Μπορείτε να δείτε ενδεικτικά το παρακάτω πρόγραμμα+Μπορείτε να δείτε ενδεικτικά το παρακάτω πρόγραμμα, όπου ορίζεται ένας πίνακας ακεραίων μεγέθους 3, ο πίνακας γεμίζει με τιμές και στη συνέχεια εκτυπώνονται τα περιεχόμενα του.
  
 <code java ArrayDemo.java>​ <code java ArrayDemo.java>​
 class ArrayDemo { class ArrayDemo {
-    ​public static void main(String[] args) { +  ​public static void main(String[] args) { 
-        // declares an array of integers +    // declares an array of integers 
-        int[] anArray;+    int[] anArray;
  
-        ​// allocates memory for 10 integers +    ​// allocates memory for 10 integers 
-        anArray = new int[3]; +    anArray = new int[3]; 
-           ​ +       ​ 
-        anArray[0] = 100; +    anArray[0] = 100; 
-        anArray[1] = 200; +    anArray[1] = 200; 
-        anArray[2] = 300; +    anArray[2] = 300; 
- +     
-        ​System.out.println("​Element at index 0: " +    for(int i=0; i < anArray.length;​ i++) { 
-                           anArray[0]); +      System.out.println("​Element at index " ​+ i + "/" ​+ anArray.length+": " + anArray[i]);
-        System.out.println("​Element at index 1: " +
-                           + anArray[1]); +
-        System.out.println("Element at index 2: " +
-                           + anArray[2]);+
     }     }
 +  }
 } }
 </​code>​ </​code>​
  
 +<WRAP important 80% round center>
 +Οι πίνακες στη Java υλοποιούνται ως αντικείμενα (//θα τα δούμε αναλυτικά παρακάτω//​). __Εφόσον αρχικοποιηθεί ένας πίνακας το μέγεθος του είναι σταθερό και δεν αλλάζει__. ​
 +
 +Κάθε αντικείμενο πίνακα έχει ένα πεδίο **length** που αποθηκεύει το μέγεθος του πίνακα (π.χ. δείτε στο πρόγραμμα ''​anArray.length''​) και για το οποίο δεν μπορούμε να μεταβάλλουμε την τιμή του (δηλαδή είναι final field). Μέσω του πεδίου //length// μπορείτε να έχετε πρόσβαση στο μέγεθος του κάθε πίνακα.
 +</​WRAP>​
 +
 +<WRAP tip 80% round center>
 +Κατεβάστε και εκτελέστε το παραπάνω πρόγραμμα. Παρατηρήστε ότι η κλήση της μεθόδου **System.out.println** εκτυπώνει στην κονσόλα σας ένα αλφαριθμητικό κατά την εκτέλεση του προγράμματος ακολουθούμενο από χαρακτήρα αλλαγής γραμμής. Εναλλακτικά της **System.out.println** μπορείτε να χρησιμοποιείτε και την μέθοδο **System.out.print**,​ όπου ο χαρακτήρας αλλαγής γραμμής παραλείπεται.
 +</​WRAP>​
 ===== Πίνακες δύο διαστάσεων ===== ===== Πίνακες δύο διαστάσεων =====
  
-Δείτε το παρακάτω πρόγραμμα που περιέχει ένα πίνακα ​δύο ​διαστάσεων. __Η ιδιαιτερότητα της Java σε σχέση με την C είναι ότι μπορούμε να έχουμε διαφορετικό μήκος ​στηλών σε κάθε γραμμή__.+Οι πίνακες δύο διαστάσεων ορίζονται σε αναλογία με τους πίνακες μίας διάστασης ​ως εξής: 
 + 
 +<code java> 
 +int [][] anArray; 
 +anArray = new int[3][5];​ 
 +      ή 
 +int [][] anArray = new int[3][5];​ 
 +</​code>​ 
 + 
 +Το παραπάνω ​παράδειγμα ορίζει ένα πίνακα διαστάσεων ​**3x5**. __Η ιδιαιτερότητα της Java σε σχέση με την C είναι ότι μπορούμε να έχουμε διαφορετικό ​αριθμό στηλών σε κάθε γραμμή ​του πίνακα__. Δείτε το παρακάτω πρόγραμμα που περιέχει ένα πίνακα δύο διαστάσεων. Στην πρώτη γραμμή του πίνακα έχουμε 3 στοιχεία,​ ενώ στην 2η δύο στοιχεία.
 <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. "}, +      {"Mr. ", "Mrs. ", "Ms. "}, 
-            {"​Smith",​ "​Jones"​} +      {"​Smith",​ "​Jones"​} 
-        }; +    }; 
-        // Mr. Smith +    // Mr. Smith 
-        System.out.println(names[0][0] + names[1][0]);​ +    System.out.println(names[0][0] + names[1][0]);​ 
-        // Ms. Jones +    // Ms. Jones 
-        System.out.println(names[0][2] + names[1][1]);​ +    System.out.println(names[0][2] + names[1][1]);​ 
-    }+  }
 } }
 </​code>​ </​code>​
  
  
 +| Προηγούμενο:​ [[java:​variables | Μεταβλητές]] | [[:toc | Περιεχόμενα ]]   | Επόμενο:​ [[java:​operators | Τελεστές ]]  |
java/arrays.txt · Last modified: 2018/02/16 17:25 by gthanos