Προς το περιεχόμενο

Πώς φτιάχνω πίνακα μεταβλητού μήκους στη Java?


niknax

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους! Μήπως ξέρει κάποιος:

 

α)πώς μπορεί να φτιαχτεί ένας πίνακας μεταβλητού μήκους και να δέχεται ακέραιους,για παράδειγμα, ώστε το μήκος του να είναι τόσο, όσο και τα στοιχεία που αποθηκεύονται σ΄αυτόν?

 

β)Πώς μπορώ να βρώ το τελευταίο ή το προτελευαίο στοιχείο ενός πίνακα char,χωρίς να ξέρω εκ των προτέρων πόσο θα είναι το μήκος του?

Δημοσ.

α) ειμαι αρκετα σιγουρος οτι αυτο που θες δε γινεται με πινακα (array). μπορεις ομως να το κανεις με list η arraylist

ArrayList<int> test = new ArrayList<int>();

test.add(int a); προσθετει στοιχειο στο τελος της λιστας.

για περισσοτερες πληροφοριες για την κλαση ArrayList ριξε μια ματια στο java API 6.

 

β) για να βρεις το τελευταιο η το προτελευταιο στοιχειο απλα καλεις την .length βρισκεις ενα αριθμο πχ α και το τελευταιο στοιχειο ειναι το Α[α-1]. αυτο που εγραψα θελει προσοχη ομως γιατι σε περιπτωση που ο πινακας δεν εινα γεματος μπορει να σου βγαλει NullPointerException.

Δημοσ.
α) ειμαι αρκετα σιγουρος οτι αυτο που θες δε γινεται με πινακα (array). μπορεις ομως να το κανεις με list η arraylist

ArrayList<int> test = new ArrayList<int>();

test.add(int a); προσθετει στοιχειο στο τελος της λιστας.

για περισσοτερες πληροφοριες για την κλαση ArrayList ριξε μια ματια στο java API 6.

 

β) για να βρεις το τελευταιο η το προτελευταιο στοιχειο απλα καλεις την .length βρισκεις ενα αριθμο πχ α και το τελευταιο στοιχειο ειναι το Α[α-1]. αυτο που εγραψα θελει προσοχη ομως γιατι σε περιπτωση που ο πινακας δεν εινα γεματος μπορει να σου βγαλει NullPointerException.

 

Καλά τα είπε ο edhunter μόνο να κάνω μία παρατήρηση:

 

Πρέπει να ειναι ArrayList<Integer> και όχι απλά int.Τα Generics παίζουν μόνο με Objects.

Δημοσ.

Αν πρέπει απαραίτητα να γίνει με πίνακες...

 

Integer[] Array1 = new Integer[0]; // Πίνακας ακεραίων με μηδενικό μήκος

 

Αν απαιτείται εισαγωγή ενός νέου στοιχείου τότε κάνουμε το εξής

 

Integer[] Array2 = new Integer[Array1.length + 1];

 

System.arraycopy(Array1, 0, Array2, 0, Array1.length);

 

Array2[Array1.length] = NewIntElement;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...