User Tools

Site Tools


java:arrays

This is an old revision of the document!


Πίνακες

Οι πίνακες στην γλώσσα προγραμματισμού Java ορίζονται σε αναλογία με την C ως ένα σύνολο τιμών του ιδίου τύπου δεδομένων του οποίου ο αριθμός των μελών ορίζεται κατά την αρχικοποίηση του πίνακα. Η αρχικοποίηση ενός πίνακα γίνεται με χρήση του τελεστή new, σε μία δήλωση της μορφής

int [] anArray; 
anArray = new int[5];
int anotherArray[]; 
anotherArray = new int[10];
     ή
int [] anArray = new int[5];
int anotherArray[] = new int[10];

Ο παραπάνω κώδικας ορίζει δύο πίνακες τύπου int μεγέθους 5 και 10 αντίστοιχα. Παρατηρήστε ότι κατά τον ορισμό του πίνακα ο τελεστής [] μπορεί να τοποθετηθεί πριν ή μετά το όνομα της μεταβλητής.

Σημειώστε ότι κατά σύμβαση προτιμάται η τοποθέτηση του τελεστή [] πριν το όνομα της μεταβλητής, και όχι μετά.

Εναλλακτικά, μπορείτε να ορίσετε το μέγεθος του πίνακα ορίζοντας και τα περιεχόμενα του στην δήλωση ορισμού του, όπως στο παρακάτω παράδειγμα:

int[] numbers = {1,2,3,4,5,6,7,8,9,10};

Η αρίθμηση των στοιχείων του πίνακα ξεκινάει από τον δείκτη 0 και αυξάνει. Για παράδειγμα για ένα πίνακα 10 θέσεων, η αρίθμηση των στοιχείων του είναι 0-9, όπως φαίνεται στο παρακάτω σχήμα.

Μπορείτε να δείτε ενδεικτικά το παρακάτω πρόγραμμα, όπου ορίζεται ένας πίνακας ακεραίων μεγέθους 3, ο πίνακας γεμίζει με τιμές και στη συνέχεια εκτυπώνονται τα περιεχόμενα του.

ArrayDemo.java
class ArrayDemo {
  public static void main(String[] args) {
    int[] anArray;
 
    anArray = new int[3];
 
    anArray[0] = 100;
    anArray[1] = 200;
    anArray[2] = 300;
 
    for(int i=0; i < anArray.length; i++) {
      System.out.println("Element at index " + i + "/" + anArray.length+": " + anArray[i]);
    }
 
    int j=0;
    for(int element: anArray) {      
      System.out.println("Element at index " + (j++) + "/" + anArray.length+": " + element);
    } 
  }
}

Οι πίνακες στη Java υλοποιούνται ως αντικείμενα (θα τα δούμε αναλυτικά παρακάτω). Εφόσον αρχικοποιηθεί ένας πίνακας το μέγεθος του είναι σταθερό και δεν αλλάζει.

Κάθε αντικείμενο πίνακα έχει ένα πεδίο length που αποθηκεύει το μέγεθος του πίνακα (π.χ. δείτε στο πρόγραμμα anArray.length) και για το οποίο δεν μπορούμε να μεταβάλλουμε την τιμή του (δηλαδή είναι final field). Μέσω του πεδίου length μπορείτε να έχετε πρόσβαση στο μέγεθος του κάθε πίνακα.

Κατεβάστε και εκτελέστε το παραπάνω πρόγραμμα. Παρατηρήστε ότι η κλήση της μεθόδου System.out.println εκτυπώνει στην κονσόλα σας ένα αλφαριθμητικό κατά την εκτέλεση του προγράμματος ακολουθούμενο από χαρακτήρα αλλαγής γραμμής. Εναλλακτικά της System.out.println μπορείτε να χρησιμοποιείτε και την μέθοδο System.out.print, όπου ο χαρακτήρας αλλαγής γραμμής παραλείπεται.

Πίνακες δύο διαστάσεων

Οι πίνακες δύο διαστάσεων ορίζονται σε αναλογία με τους πίνακες μίας διάστασης ως εξής:

int [][] anArray;
anArray = new int[3][5];
      ή
int [][] anArray = new int[3][5];

Το παραπάνω παράδειγμα ορίζει ένα πίνακα διαστάσεων 3×5. Η ιδιαιτερότητα της Java είναι ότι μπορούμε να έχουμε διαφορετικό αριθμό στηλών σε κάθε γραμμή του πίνακα. Δείτε το παρακάτω πρόγραμμα που περιέχει ένα πίνακα δύο διαστάσεων. Στην πρώτη γραμμή του πίνακα έχουμε 3 στοιχεία, ενώ στην 2η δύο στοιχεία.

MultiDimArrayDemo.java
class MultiDimArrayDemo {
  public static void main(String[] args) {
    String [][] names;
    names = new String[3][];
    names[0] = new String[3];
    names[1] = new String[5];
    names[2] = new String[4];
 
    names[0][0]="Mr. "; names[0][1]="Mrs. "; names[0][2]="Ms. ";
    names[1][0]="Susan "; names[1][1]="Peter "; names[1][2]="Edgar "; names[1][3]="Mary "; names[1][4]="Linda ";
    names[2][0]="Smith"; names[2][1]="Jones"; names[2][2]="Williams"; names[2][3]="Taylor";
 
    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.");
  }
}
java/arrays.1517673157.txt.gz · Last modified: 2018/02/03 15:52 (external edit)