126 Stimmen

Java dynamische Array-Größen?

Ich habe eine Klasse - XClass, die ich in ein Array von XClasses laden möchte:

XClass myClass[] = new XClass[10];
myclass[0] = new XClass();
myclass[9] = new XClass();

Ich weiß jedoch nicht, ob ich 10, 8 oder 12 Klassen oder irgendeine andere Anzahl benötigen werde.
Ich werde es erst zur Laufzeit wissen.

Kann ich die Anzahl der Elemente in einem Array während der Laufzeit ändern?
Wenn ja, wie?

0 Stimmen

Ich habe das Format der Frage verbessert, du kannst nur den Titel ändern, wenn du möchtest, sei einfach beschreibend. und willkommen bei Stackoverflow! :D

3voto

sinuhepop Punkte 19111

Wie andere Benutzer sagen, benötigen Sie wahrscheinlich eine Implementierung von java.util.List.

Wenn Sie aus irgendeinem Grund schließlich ein Array benötigen, können Sie zwei Dinge tun:

  • Verwenden Sie eine List und konvertieren Sie sie dann mit myList.toArray() in ein Array

  • Verwenden Sie ein Array mit einer bestimmten Größe. Wenn Sie mehr oder weniger Größe benötigen, können Sie es mit den Methoden von java.util.Arrays ändern.

Die beste Lösung hängt von Ihrem Problem ab ;)

3voto

man.2067067 Punkte 145

Arrays.copyOf() Methode bietet viele Optionen, um das Problem mit der dynamisch steigenden Array-Länge zu beheben.

Java API

2voto

Jé Queue Punkte 9947

Ja, pack es ein und benutze das Collections-Framework.

List l = new ArrayList();
l.add(new xClass());
// do stuff
l.add(new xClass());

Verwende dann List.toArray(), wenn nötig, oder gehe einfach über die genannte Liste.

2voto

Ich empfehle, statt dessen Vektoren zu verwenden. Sehr einfach zu benutzen und hat viele vordefinierte Methoden zur Implementierung.

import java.util.*;

Vector v = new Vector(5, 2);

Um ein Element hinzuzufügen, verwenden Sie einfach:

v.addElement(int);

Im (5,2) ist die erste 5 die Anfangsgröße des Vektors. Wenn Sie die Anfangsgröße überschreiten, wird der Vektor um 2 Plätze erweitert. Wenn es erneut überschritten wird, wird er wieder um 2 Plätze vergrößert und so weiter.

1voto

Amir Afghani Punkte 36713

Wo Sie das myclass[] Array deklarieren :

xClass myclass[] = new xClass[10]

, einfach die Anzahl der XClass-Elemente als Argument übergeben, die Sie benötigen. Wissen Sie zu diesem Zeitpunkt, wie viele Sie benötigen werden? Indem Sie das Array deklarieren und 10 Elemente haben, deklarieren Sie nicht 10 XClass-Objekte, sondern erstellen einfach ein Array mit 10 Elementen vom Typ xClass.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X