In PHP können Sie Arrays dynamisch Elemente hinzufügen, indem Sie Folgendes tun:
$x = new Array();
$x[] = 1;
$x[] = 2;
Danach $x
wäre ein Array wie folgt : {1,2}
.
Gibt es eine Möglichkeit, etwas Ähnliches in Java zu tun?
java
arrays
dynamic-arrays
kamikaze_pilot
quelle
quelle
Antworten:
Schauen Sie sich java.util.LinkedList oder java.util.ArrayList an
quelle
int[]
) benötigen, verwenden Sie einfach dietoArray()
Methode in List. Verwenden Sie den obigen Code, aber verwenden Siex.toArray()
, um ein primitives Array zu erhalten.ARRAY
Objekten oder so etwas Dummem verbunden sind, ist es viel besser, primitive Arrays zu vermeiden.List
Wenn wir eine Referenz verwenden, können wirArrayList
jederzeit an den Straßenrand treten . Wenn jemand eine bessere Liste veröffentlichtSuperDuperAwesomeList
, haben wir möglicherweise viel zu tun, wenn wir unsere Referenz anArrayList
. ArrayList hat Dinge, die List nicht hat. Wenn wir uns auf diese Dinge in unserem Code verlassen, wird es viel schwieriger, sie auszutauschen.Arrays in Java haben eine feste Größe, so dass Sie nicht "am Ende etwas hinzufügen" können, wie Sie es in PHP tun könnten.
Ein bisschen ähnlich wie das PHP-Verhalten ist dies:
Dann können Sie schreiben:
Dieses Schema ist jedoch für größere Arrays schrecklich ineffizient , da es jedes Mal eine Kopie des gesamten Arrays erstellt. (Und es ist in der Tat nicht ganz gleichbedeutend mit PHP, da Ihre alten Arrays gleich bleiben).
Die PHP-Arrays sind in der Tat ziemlich identisch mit einer Java-HashMap mit einem hinzugefügten "max-Schlüssel", sodass sie wissen, welcher Schlüssel als nächstes verwendet werden soll, und einer seltsamen Iterationsreihenfolge (und einer seltsamen Äquivalenzbeziehung zwischen Integer-Schlüsseln und einigen Strings). Verwenden Sie für einfache indizierte Sammlungen besser eine Liste in Java, wie die anderen vorgeschlagenen Antwortenden.
Wenn Sie die Verwendung
List
aufgrund des Overheads beim Umschließen jedes int in eine Ganzzahl vermeiden möchten, sollten Sie die Neuimplementierung von Sammlungen für primitive Typen in Betracht ziehen, die Arrays intern verwenden, jedoch nicht bei jeder Änderung eine Kopie erstellen, nur wenn das interne Array voll ist ( genau wie ArrayList). (Ein schnell gegoogeltes Beispiel ist diese IntList-Klasse .)Guava enthält Verfahren die Schaffung einer solchen Umhüllungen in
Ints.asList
,Longs.asList
usw.quelle
ArrayList
funktioniert - außer dass sich die Größe nicht bei jedem Hinzufügen ändert, wenn der Platz knapp wird, verdoppelt sich die Größe, sodass die Größe nicht so oft geändert werden muss.org
ist einer kürzer alsresult
.Apache Commons verfügt über eine ArrayUtils- Implementierung, mit der am Ende des neuen Arrays ein Element hinzugefügt werden kann :
quelle
Ich habe diese Frage sehr oft im Internet gesehen und meiner Meinung nach haben viele Menschen mit hohem Ansehen diese Fragen nicht richtig beantwortet. Deshalb möchte ich hier meine eigene Antwort ausdrücken.
Zuerst sollten wir bedenken, dass es einen Unterschied zwischen
array
und gibtarraylist
.In der Frage wird gefragt , ob einem Array ein Element hinzugefügt werden soll und nicht ArrayList
Die Antwort ist ganz einfach. Dies kann in 3 Schritten erfolgen.
Hier ist das einfache Bild davon
Und zum Schluss hier der Code:
Schritt 1:
Schritt 2:
Schritt 3:
Schritt 4
quelle
Sie können eine
ArrayList
und dann dietoArray()
Methode verwenden. Aber je nachdem, was Sie tun, benötigen Sie möglicherweise überhaupt kein Array. Prüfen Sie, ob SieLists
mehr wollen.Siehe: Java List Tutorial
quelle
Sie möchten wahrscheinlich eine ArrayList dafür verwenden - für eine Array-ähnliche Struktur mit dynamischer Größe.
quelle
Sie können einem Array mithilfe von Collection Frameworks in JAVA dynamisch Elemente hinzufügen. Das Collection Framework funktioniert nicht mit primitiven Datentypen.
Dieses Collection-Framework wird im Paket "java.util. *" Verfügbar sein
Wenn Sie beispielsweise ArrayList verwenden,
Erstellen Sie ein Objekt und fügen Sie dann eine Anzahl von Elementen hinzu (ein beliebiger Typ wie String, Integer ... usw.)
Jetzt wurden einem Array 3 Elemente hinzugefügt.
Wenn Sie hinzugefügte Elemente entfernen möchten
erneut, wenn Sie ein Element hinzufügen möchten
Die Arraygröße nimmt also dynamisch zu / ab.
quelle
Verwenden Sie eine ArrayList oder jonglieren Sie mit Arrays, um die Arraygröße automatisch zu erhöhen.
quelle
Zählen Sie, wo Sie sich im primitiven Array befinden
quelle
Dies ist eine einfache Möglichkeit, einem Array in Java etwas hinzuzufügen. Ich habe ein zweites Array verwendet, um mein ursprüngliches Array zu speichern, und dann ein weiteres Element hinzugefügt. Danach habe ich das Array an das ursprüngliche zurückgegeben.
quelle
In Java ist die Größe des Arrays fest, aber Sie können einem Array mit fester Größe mithilfe seines Index und der for-Schleife dynamisch Elemente hinzufügen. Das folgende Beispiel finden Sie unten.
quelle