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/07/07 17:28]
gthanos [Πίνακες δύο διαστάσεων]
java:arrays [2017/02/10 18:19]
doufexi Διόρθωση prev link
Line 4: Line 4:
  
 <code java> <code java>
-int [] anArray;+int [] anArray; ​
 anArray = new int[5]; anArray = new int[5];
 +int anotherArray[]; ​
 +anotherArray = new int[10];
      ή      ή
 int [] anArray = new int[5]; int [] anArray = new int[5];
 +int anotherArray[] = new int[10];
 </​code>​ </​code>​
  
-Ο παραπάνω κώδικας ορίζει ​ένα ​πίνακα τύπου **int** μεγέθους **5**. Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων,​ η αρίθμηση των στοιχείων του είναι **0-9**, όπως φαίνεται στο παρακάτω σχήμα.+Ο παραπάνω κώδικας ορίζει ​δύο ​πίνακες τύπου **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 ​ }}
Line 18: Line 32:
 <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.length+":​ "+ anArray[0]); +      System.out.println("​Element at index " + i + "/"​ + anArray.length+":​ " + anArray[i]);
-        }+
     }     }
 +  }
 } }
 </​code>​ </​code>​
  
 <WRAP important 80% round center> <WRAP important 80% round center>
-Οι πίνακες στη Java υλοποιούνται ως αντικείμενα (//θα τα δούμε αναλυτικά παρακάτω//​). Κάθε αντικείμενο έχει ένα πεδίο **length** που αποθηκεύει το μέγεθος του πίνακα (π.χ. ''​anArray.length''​) και το οποίο δεν μεταβάλει την τιμή του (δηλαδή είναι final field). Μέσω του πεδίου length μπορείτε να έχετε πρόσβαση στο μέγεθος του κάθε πίνακα.+Οι πίνακες στη Java υλοποιούνται ως αντικείμενα (//θα τα δούμε αναλυτικά παρακάτω//​). ​__Εφόσον αρχικοποιηθεί ένας πίνακας το μέγεθος του είναι σταθερό και δεν αλλάζει__.  
 + 
 +Κάθε αντικείμενο ​πίνακα ​έχει ένα πεδίο **length** που αποθηκεύει το μέγεθος του πίνακα (π.χ. ​δείτε στο πρόγραμμα ​''​anArray.length''​) και ​για ​το οποίο δεν ​μπορούμε να μεταβάλλουμε την τιμή του (δηλαδή είναι final field). Μέσω του πεδίου ​//length// μπορείτε να έχετε πρόσβαση στο μέγεθος του κάθε πίνακα.
 </​WRAP>​ </​WRAP>​
  
 +<WRAP tip 80% round center>
 +Κατεβάστε και εκτελέστε το παραπάνω πρόγραμμα. Παρατηρήστε ότι η κλήση της μεθόδου **System.out.println** εκτυπώνει στην κονσόλα σας ένα αλφαριθμητικό κατά την εκτέλεση του προγράμματος ακολουθούμενο από χαρακτήρα αλλαγής γραμμής. Εναλλακτικά της **System.out.println** μπορείτε να χρησιμοποιείτε και την μέθοδο **System.out.print**,​ όπου ο χαρακτήρας αλλαγής γραμμής παραλείπεται.
 +</​WRAP>​
 ===== Πίνακες δύο διαστάσεων ===== ===== Πίνακες δύο διαστάσεων =====
  
-Οι πίνακες δύο διαστάσεων ορίζονται σε αναλογία με τους πίνακες μίας διάστασης ως εξής+Οι πίνακες δύο διαστάσεων ορίζονται σε αναλογία με τους πίνακες μίας διάστασης ως εξής:
  
 <code java> <code java>
 int [][] anArray; int [][] anArray;
 anArray = new int[3][5]; anArray = new int[3][5];
-ή+      ​ή
 int [][] anArray = new int[3][5]; int [][] anArray = new int[3][5];
 </​code>​ </​code>​
Line 54: Line 73:
 <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