Αρχικοποιώ έναν πίνακα ως εξής:
public class Array {
int data[] = new int[10];
/** Creates a new instance of Array */
public Array() {
data[10] = {10,20,30,40,50,60,71,80,90,91};
}
}
Το NetBeans δείχνει ένα σφάλμα σε αυτή τη γραμμή:
data[10] = {10,20,30,40,50,60,71,80,90,91};
Πώς μπορώ να λύσω το πρόβλημα;
data[10] = {10,20,30,40,50,60,71,80,90,91};
Το παραπάνω δεν είναι σωστό (συντακτικό σφάλμα). Σημαίνει ότι αναθέτετε έναν πίνακα στο data[10]
ο οποίος μπορεί να περιέχει μόνο ένα στοιχείο.
Αν θέλετε να αρχικοποιήσετε έναν πίνακα, δοκιμάστε να χρησιμοποιήσετε το Array Initializer:
int[] data = {10,20,30,40,50,60,71,80,90,91};
// or
int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};
Παρατηρήστε τη διαφορά μεταξύ των δύο δηλώσεων. Όταν αναθέτετε έναν νέο πίνακα σε μια δηλωμένη μεταβλητή, πρέπει να χρησιμοποιείται η λέξη new
.
Ακόμα και αν διορθώσετε τη σύνταξη, η προσπέλαση του data[10]
εξακολουθεί να είναι λανθασμένη (Μπορείτε να προσπελάσετε μόνο τα data[0]
έως data[9]
επειδή ο δείκτης των πινάκων στη Java βασίζεται στο 0). Η πρόσβαση στο data[10]
θα προκαλέσει ArrayIndexOutOfBoundsException.
Δοκιμάστε data = new int[] {10,20,30,40,50,60,71,80,90,91 };
προσπαθείτε να ορίσετε το 10ο στοιχείο του πίνακα στον πίνακα try
data = new int[] {10,20,30,40,50,60,71,80,90,91};
FTFY