# Länge einer Arrays



## MQue (22. Mai 2007)

Hallo nochmal,

wie kann ich die Länge eines Array bestimmen, welches ich mit der Länge 30 definiert habe aber nicht in allen Indizes etwas reinschreibe, wenn z.B. nur in den ersten 4 einträgen des Arrays etwas drinnensteht wie bekomme ich da 4 heraus.


Vielen Dan´k


----------



## The_S (22. Mai 2007)

Indem du jedes Element in einer Schleife durchgehst und dabei die "ausgefüllten" Elemente zählst.


----------



## MQue (22. Mai 2007)

gibts da nicht was anderes auch noch eine Methode z.B., das is ja mühsam


----------



## The_S (22. Mai 2007)

kA, also ich kenn keine. Aber warum schreibst du dir nicht einfach selber eine? Das ist ne einfache Schleife ...


----------



## MQue (22. Mai 2007)

ja aber ich mag keine Schleifen, das frist Resourcen noch dazu wird das dann immer ausgeführt, da diese Methode dann in der run- Methode aufgerufen wird.


----------



## The_S (22. Mai 2007)

Wie soll es denn ohne Schleifen gehen? Und Schleifen fressen ja wohl keine Ressourcen (zumindest nicht bedeutend).

Definiere "noch dazu wird das dann immer ausgeführt, da diese Methode dann in der run- Methode aufgerufen wird.". Wenn sie da nunmal benötigt wird, dann muss sie da ja wohl auch aufgerufen werden oder?


----------



## EOB (22. Mai 2007)

du magst keine schleifen  :shock: ? tja dann solltest du nicht mehr programmieren...:bae: . was ist es denn für ein array? also welcher datentyp? ausserdem, wenns dafür was gebe, was denkst du wohl, wie das dann gemacht wäre?

grüße

EDIT: mal ein beispiel mit nem string array


```
String[] ia = new String[5];
        
ia[0]="sassas";
ia[3]="sd324434de";
        
int counter =0;
        
for(int i=0;i<ia.length;i++){
            
    if(ia[i]!=null){
        counter++;
    }
}
         
System.out.println(counter);
```


----------



## FelixB (22. Mai 2007)

nimm doch ne dynamische Liste oder sowas. da gibts dann ne Methode, die dir zurückgibt, wieviele Elemente gerade drin sind.

wenn du Glück hast, wird die Zahl als Variable gespeichert und es ist nicht jedesmal ne Schleife notwendig


----------



## EOB (22. Mai 2007)

ginge  natürlich auch...vermutlich sogar besser, da es mit arrays ja nach DT anders ist...int array ist zb mit 0 gefüllt und strings mit null.

grüße


----------



## MQue (22. Mai 2007)

Vielen Dank,

ich habs mit einer ArrayList gemacht!!

lg


----------



## bygones (22. Mai 2007)

wenn dir eine schleife zu lang dauert machs wie die listen... lass einfach eine zusätzliche variable laufen, die immer dann erhoeht wird, wenn ein neues element hinzugefügt wird.


----------



## Leroy42 (22. Mai 2007)

Michael1234 hat gesagt.:
			
		

> ich habs mit einer ArrayList gemacht!!



Und du bist dir jetzt sicher, daß das, was eine ArrayList 
im _Hintergrund_ veranstaltet, ressourcenschonender ist,
als wenn du ein Array durchläufst und die Elemente, mit nicht _null-_Wert,
zählst.

Naja gut!


----------



## EOB (22. Mai 2007)

sind es denn überhaupt strings?

grüße


----------



## deleted (22. Mai 2007)

Schleifen? Und die BRAUCHT man?
Was für Weicheier hier im Forum...
Echte Kerle vermeiden so ein neumodisches Gedöns und nehmen GOTO (wenns denn unbedingt ne Hochsprache sein muss  ).

Aber zur konstruktiven Lösung des Problems:

Schlicht und einfach eine integer Variable definieren, und immer, wenn man etwas auf dem Array ablegt, inkrementieren, analog dann beim Löschen von Sachen.

Sehe kein Problem darin.
Ok, man bräuchte eine Methode, die sich um das Array "kümmert", damit das immer richtig gemacht wird.
Aber je mehr man kapselt, desto größer ist am Ende auch die Sicherheit...

PS:
Wobei obiger, ironisch gemeinter, und bei fast jeder "Schleifendiskussion" ins Feld geführte, Einschub eigentlich völlig falsch ist - der (gute) Compiler, dem ist das ja egal...
IMHO dürfte eine Realisierung mit einer Schleife sogar teilweise schneller sein, weil der Compiler auf das Übersetzen der Schleife optimiert ist...


----------



## bygones (22. Mai 2007)

Leroy42 hat gesagt.:
			
		

> Michael1234 hat gesagt.:
> 
> 
> 
> ...


die aktuelle größe einer liste gibt die variable size wieder, die nicht durch itererieren der liste erstellt wird....


----------

