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/01/15 05:29] gthanos [Πίνακες] |
java:arrays [2016/02/26 11:15] 127.0.0.1 external edit |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| <code java> | <code java> | ||
| - | int [] anArray; anArray = new int[5]; | + | int [] anArray; |
| - | int anotherArray[]; anotherArray[] = new int[10]; | + | anArray = new int[5]; |
| + | int anotherArray[]; | ||
| + | anotherArray = new int[10]; | ||
| ή | ή | ||
| int [] anArray = new int[5]; | int [] anArray = new int[5]; | ||
| Line 11: | Line 13: | ||
| </code> | </code> | ||
| - | Ο παραπάνω κώδικας ορίζει δύο πίνακες τύπου **int** μεγέθους **5** και **10** αντίστοιχα. Παρατηρήστε ότι κατά τον ορισμό του πίνακα ο τελεστής **[]** μπορεί να τοποθετηθεί πριν η μετά το όνομα της μεταβλητής. | + | Ο παραπάνω κώδικας ορίζει δύο πίνακες τύπου **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**, όπως φαίνεται στο παρακάτω σχήμα. | Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων, η αρίθμηση των στοιχείων του είναι **0-9**, όπως φαίνεται στο παρακάτω σχήμα. | ||
| Line 21: | 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> | ||
| Line 57: | 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:variables | Μεταβλητές]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[java:operators | Τελεστές ]] | |