java:arrays

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
java:arrays [2015/04/14 11:38]
gthanos [Πίνακες]
java:arrays [2017/02/10 18:19]
doufexi Διόρθωση prev link
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; 
-         +     
-        for(int i=0; i<​anArray.length;​ i++) { +    for(int i=0; i < anArray.length;​ i++) { 
-          System.out.println("​Element at index "​+i+":​ "+ anArray[0]); +      System.out.println("​Element at index " + i + "/"​ + anArray.length+": " + anArray[i]);
-        }+
     }     }
 +  }
 } }
 </​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 ​Μεταβλητές]]   | [[java:​operators | Τελεστές ]]  |+Προηγούμενο: ​[[java:literals ​Κυριολεκτικά]] | [[:toc | Περιεχόμενα ]]   ​| ​Επόμενο: ​[[java:​operators | Τελεστές ]]  |
java/arrays.txt · Last modified: 2018/02/16 17:25 by gthanos