string toevoegen aan String array

Ik ben nieuw in Java, dus ik heb weinig hulp nodig

Ik heb

string [] scripts = new String [] ("test3","test4","test5");

en ik wil nieuwe strings ( string1,string2) toevoegen aan deze array ( scripts) voor voorbeelden

String string1= " test1"
String string2 = "test2"

Ik wil de nieuwe string niet in de init maar in een latere fase toevoegen

Hoe kan ik het doen?


Antwoord 1, autoriteit 100%

Je kunt de grootte van een array niet wijzigen in Java.

Zodra de grootte van de array is gedeclareerd, blijft deze vast.

In plaats daarvan kunt u ArrayListgebruiken met een dynamische grootte, wat betekent dat u zich geen zorgen hoeft te maken over de grootte. Als uw arraylijst niet groot genoeg is voor nieuwe waarden, wordt de grootte automatisch aangepast.

ArrayList<String> ar = new ArrayList<String>();
String s1 ="Test1";
String s2 ="Test2";
String s3 ="Test3";
ar.add(s1);
ar.add(s2);
ar.add(s3);
String s4 ="Test4";
ar.add(s4);

Antwoord 2, autoriteit 14%

Eerst deze code hier,

string [] scripts = new String [] ("test3","test4","test5");

zou moeten zijn

String[] scripts = new String [] {"test3","test4","test5"};

Lees deze tutorial over Arrays

Ten tweede,

Arrays hebben een vaste grootte, dus je kunt geen nieuwe strings toevoegen aan bovenstaande array. U kunt bestaande waarden overschrijven

scripts[0] = string1;

(of)

Maak een array met grootte en blijf elementen toevoegen totdat deze vol is.

Als u arrays van formaat wilt wijzigen, kunt u overwegen ArrayList.


Antwoord 3, autoriteit 7%

je zou een methode moeten opschrijven om een tijdelijke array te maken en deze dan te kopiëren zoals

public String[] increaseArray(String[] theArray, int increaseBy)  
{  
    int i = theArray.length;  
    int n = ++i;  
    String[] newArray = new String[n];  
    for(int cnt=0;cnt<theArray.length;cnt++)
    {  
        newArray[cnt] = theArray[cnt];  
    }  
    return newArray;  
}  

of de ArrayListzou nuttig zijn om uw probleem op te lossen.


Antwoord 4, autoriteit 4%

Zoals veel van de antwoorden die een betere oplossing suggereren, is om ArrayList te gebruiken. De grootte van de ArrayList staat niet vast en is gemakkelijk te beheren.

Het is een resizable-array-implementatie van de List-interface. Implementeert alle optionele lijstbewerkingen en staat alle elementen toe, inclusief null. Naast het implementeren van de List-interface, biedt deze klasse methoden om de grootte van de array te manipuleren die intern wordt gebruikt om de lijst op te slaan.

Elke instantie van ArrayList heeft een capaciteit. De capaciteit is de grootte van de array die wordt gebruikt om de elementen in de lijst op te slaan. Het is altijd minstens zo groot als de grootte van de lijst. Als elementen aan een ArrayList worden toegevoegd, groeit de capaciteit automatisch.

Houd er rekening mee dat deze implementatie niet is gesynchroniseerd.

ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test1");
scripts.add("test2");
scripts.add("test3");

Antwoord 5, autoriteit 3%

Aangezien Java-arrays een vast aantal waarden bevatten, moet u in dit geval een nieuwe array met een lengte van 5 maken. Een betere oplossing zou zijn om een ArrayListte gebruiken en simpelweg toe te voegenstrings aan de array.

Voorbeeld:

ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test3");
scripts.add("test4");
scripts.add("test5");
// Then later you can add more Strings to the ArrayList
scripts.add("test1");
scripts.add("test2");

Other episodes