Listenlänge

Status
Nicht offen für weitere Antworten.
S

Sonnenanbeter

Gast
Hallo,

ich würde gern ein Int Array mit Zahlen füllen, weiß aber noch nicht genau, wie viele Zahlen es denn werden.
Einfach das Array so groß machen, dass im worst case alle Zahlen reinpassen ist auch keine Lösung, da ich später testen möchte, wie groß das Array ist und mit der Länge weiter arbeite.

Vielleicht kann ich ja eine andere Datenstruktur nutzen...?
Oder gibt es einen Trick?

Vielen Dank schon mal für Eure kompetente Hilfe und noch einen schönen Feiertag!
 
R

Roar

Gast
du kannst dein array einfach anlegen ohne die größe festzulegen:
Code:
int[] vieleSchoeneZahlen;
und wenn du die zahlen hast:
Code:
vieleSchoeneZahlen = {eineZahl,nochEine,undNochEine,mannSindDasVieleZahlen,dieLetzte};
so wird die "length" automatisch festgelegt
 
S

Sonnenanbeter

Gast
Hi,

danke erstmal für den Tip, aber das hilft mir leider nicht weiter.

Die Zahlen stehen nämlich nicht alle auf einmal fest, sondern ergeben sich erst im Laufe des Programms.
Genauer: ich gehe mit Hilfe von zwei verschachtelten for-Schleifen eine Matrix durch und möchte den entsprechenden Wert in das Array schreiben, falls eine Reihe von Bedingungen erfüllt sind.

Vorher weiß ich jedoch nicht, welche Elemente, bzw. wieviele das sind!

Wäre es zum Beispiel möglich, das Array mit dem jeweiligen Element zu konkatenieren, also zu "verschmelzen"?
Ähnlich vielleicht wie bei einem String, da kann ich ja auch sagen:
Code:
 String stringvar = new String("huhu");
stringvar = "dasisteinText" + stringvar;

Geht sowas ähnliches vielleicht?
Danke!
 
R

Roar

Gast
du kannst doch die größe der matrix nehmen...
also:
Code:
int[][] matrix = new int[3][2]{{1,2},{3,4},{5,6}};
int size = matrix.length + matrix[].length;
int[] vieleSchoeneZahlen = new int[size];
so müsste das gehen, falls das das ist was du willst...
 

Nobody

Top Contributor
du erstellst ein hilfsarray, packst alle bisherigen zahlen rein und fügst das neue element hinzu. alternativ guck dir mal arraycopy an:

Code:
int[] nIa = {0,1,2,3};
nZahl = 4;
int[] puffer;
puffer = new int[nIa.length()+1];
for (int i= 0; i<nIa.length();i++){
  puffer[i]=nIa[i];
}
puffer[puffer.length()-1]=nZahl;
nIa=puffer;

sollte deinen zweck erfüllen oder?
 
B

bygones

Gast
Vielleicht kann ich ja eine andere Datenstruktur nutzen...?

Ja, nehm doch nen Vector / ArrayList / LinkedList o.ä. da kannst du dynamisch soviel elemente hinzufügen bzw. löschen wie du willst....
 
S

Sonnenanbeter

Gast
Super!

Genau das habe ich gebraucht.
Vielen Dank an Nobody!!

Guten Rutsch und Frohes Neues!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben