# Anzahl der Elemente einer Liste ausgeben



## granini (3. Mai 2006)

Hallo,

habe ein Problem mir die Anzahl der Elemente einer Liste ausgeben zu lassen.. Genauer gesagt soll die Anzahl der Elemente bis auf das Erste ausgegeben werden.

Folgendes Konstrukt habe ich:


```
interface List {
List anzahl();
...
}

class TestList implements List{
...
public List anzahl(){
    return ??
}
```

??
Kann ich hier irgendwie mit size arbeiten? Aber egal wie ich size einsetzt "Cannot resolve .."...

Oder welche Möglichkeit habe ich noch?

Danke

Grüsse


----------



## bygones (3. Mai 2006)

zum einen würde ich das interface nicht List nennen, da das schon eine Java Klasse bzw. Interface ist, zum anderen - es hängt davon ab wie du die elemente speicherst...

array oder eine list dann über length oder size. bei einer selbst implementierten Verkette listen würde ich einen variable speichern, die die Größe hält


----------



## Redfrettchen (3. Mai 2006)

Hi,
irgendwie versteh ich die Logik hinter deiner Frage nicht:
Du hast ein List-Interface und nun eine konkrete Klasse, die dieses Interface implementiert, vor allem seine Methode anzahl(). Nun musst du doch aus deiner unterliegenden Struktur irgendwie diese "Anzahl" herausbekommen, oder? Ich will damit sagen, dass du uns vllt verraten solltest, auf welcher Struktur deine Liste basiert...

EDIT: mist, wieder zu langsam... (shice icq) ^^


----------



## Leroy42 (3. Mai 2006)

granini hat gesagt.:
			
		

> ```
> public List anzahl(){
> return ??
> }
> ```


Und außerdem sollte die Methode anzahl() doch eher ein int zurückgeben und keine Liste  :shock:


----------



## granini (3. Mai 2006)

Ok, der Quelcode war wohl zu zerstückelt.

Habe das ganze über einen Konstruktur gelöst.


```
interface List {
List anzahl();
...
}
class Entry{
...
}

class TestList implements List{

  TestList(Entry first, Entry next){
     this.first = first;
     this.last = last
  }
...
public List anzahl(){
    return new TestList(first.next,last);
}
```

Ich denke so ist das ok...




[/quote]


----------



## Roar (3. Mai 2006)

hm, und was bringt deine methode anzahl() jetzt?  ???:L


			
				Leroy42 hat gesagt.:
			
		

> Und außerdem sollte die Methode anzahl() doch eher ein int zurückgeben und keine Liste  :shock:


----------



## granini (3. Mai 2006)

Es geht mir hier primär um die Implementierung von Subtyping..Und die Methode anzahl kann ich jetzt im Hauptprogramm verwenden..

Ich habe aber noch eine Frage zu 

```
TestList(Entry first, Entry next){
     this.first = first;
     this.last = last
  }
```

Kann mir einer sagen, wie der Konstruktor aussehen würde ohne this? Irgendwie verstehe ich den Einsatz von this.* noch ncith so ganz...

Danke


----------



## Roar (3. Mai 2006)

hm aha, ich hab den ersten post so verstanden, dass die methode anzahl() die anzahl der elemente in der liste zurückgeben sollte, und sie deshalb auch anzahl() heißt. :roll:


----------



## bygones (3. Mai 2006)

öh hallo ?

deine methode anzahl in der Form ist schlichtweg falsch - ignorierst du das einfach oder nun einfach egal ?

mhm probieren wirs mit der zweiten frage - die parameter einfach anders bennenen, dann ist kein this von nöten.

mich wundert es dass solch elementares wissen nicht vorhanden ist, aber dann werden worte wie subtyping benutzt ?!


----------



## Leroy42 (3. Mai 2006)

granini hat gesagt.:
			
		

> Kann mir einer sagen, wie der Konstruktor aussehen würde ohne this? Irgendwie verstehe ich den Einsatz von this.* noch ncith so ganz...



Die Klasse TestList hat ja 2 Instanzvariablen die first und last heißen.
Zumindest die Variable _first_ wird vom Parameter gleichen Namen des
Konstruktors überdeckt. Durch this.first weiß der Compiler welchem first du
was zuweilen willst.

Es geht auch ohne this, dann mußt du die Parameternamen aber ändern.


----------



## Leroy42 (3. Mai 2006)

deathbyaclown hat gesagt.:
			
		

> ... dass solch elementares wissen nicht vorhanden ist, aber dann werden worte wie subtyping benutzt ?!


Hmmh? ???:L


----------



## granini (3. Mai 2006)

Danke.. 

@deathbya..
Wieso ist denn die Methode falsch bzw wo wurde mir das bis jetzt gesagt?
Zumindest funktioniert sie in meinem Prog. Aber Alternativen und Verbesserungen sidn herzlich Willkommen..
Deine Antwort auf meine 2.Frage hat mich <= 0 weiter gebracht ;-).. Ob this.* zu elementaren Dingen gehört oder nicht ist doch egal. Wenn ich eine Frage habe, frage ich. Dafür steht doch das Forum. 
Subtyping gehört zumindest in meinen Unterlagen ebenfalls zu den elementaren Grundlagen.


----------



## Roar (3. Mai 2006)

in deinem ersten post steht doch:


> Genauer gesagt soll die Anzahl der Elemente bis auf das Erste ausgegeben werden.


deine jetzige methode anzahl() macht aber was anderes.
gesagt wurde dir das schon von redfrettchen und leroy :autsch:

auf deine zweite frage wurde übrigens auch schon geantwortet


----------



## bygones (3. Mai 2006)

wegen der Methode:

wie schon oben gesagt - du willst die Anzahl der Elemente deiner Liste ermitteln... worin liegt der Sinn hier eine List als Rückgabe parameter zu nehmen und nicht ein einfaches int ? Die Größe einer Liste ist 3 / 6 / 100 / oder was auch immer, nicht eine andere Liste....

zu this:
erklärung hat leroy gegeben

_edit: grml vote für posting sperre wenn ich antworte _


----------



## Leroy42 (3. Mai 2006)

deathbyaclown hat gesagt.:
			
		

> _edit: grml vote für posting sperre wenn ich antworte _



Dann mach halt hinne!   

Geht wohl ganz schön auf's Ego, wenn dich so'n unrasiertes, unausgeschlafenes
Southpark-Bengelchen von rechts überholt? 
 :wink:


----------



## granini (3. Mai 2006)

Schon ok... ;-) 

Hat mich aber insgesamt weiter gebracht..

Danke


----------

