In einer Methode fülle ich eine selbst erzeugte linkedlist und möchte die zurück geben, aber wie (Java)?


24.10.2021, 15:11

meinte return Klassenname* Aber den Klassennamen gebe ich ja auch als Datentyp für die Methode an, dann würde ich ja da das gleichce schreibenm, macht ja wenig sinn

3 Antworten

Du hast als Rückgabetyp den Listentyp.

Oder void, oder irgendetwas, was signalisiert, ob die Methode erfolgreich war. Denn wenn du das Listenobjekt, das du manipulieren sollst, bereits übergeben bekommst, dann kannst du auch direkt auf diesem arbeiten und er Aufrufer hat die referenz ja auch noch, denn er hat dir ja das Objekt gegeben.


jdqwio2 
Fragesteller
 24.10.2021, 15:25

Genau, ich kann es auch manipulieren. Meine Aufgabenstellung lautet: Ergänze deine Klasse Liste mit einer Instanzmethdoe die als Parameter ein einzelnes Zeichen besitzt und eine Liste mit allen Autos zurück gibt, die mit diesem Zeichen anfangen.

Ich gehe dann in der Methode meine verkettete Lsite durch, die Autos als Elemente hat, filtere die die mit dem zeichen anfangen und muss die nun in eine Lsite packen und zurück geben, aber wie packe ich die in eine Liste?

1
Destranix  24.10.2021, 15:28
@jdqwio2

Soweit ich das verstehe sollst du eine neue Liste erzeugen. Dafür verwendest du am Besten deine Listenklasse.
Sprich:

 public MyList filterStartsWith(char c){
    MyList ret = new MyList();
    //Filter and add to return list
    return ret;
}
0
Mache ich dann return listenname?

ja ... Damit gibst du die Liste an den Aufrufer zurück. Der angegebene Rückgabewert der Methode im Methodenkopf sollte jedoch auch passend sein ...


jdqwio2 
Fragesteller
 24.10.2021, 15:18

Ist der Listenname aber nicht mein Klassennameß Dann schreibe ich ja bei Datentyp der Methode und return der emthode das glecieh hin?

0
xxxcyberxxx  24.10.2021, 15:20
@jdqwio2
Ist der Listenname aber nicht mein Klassennameß

Da du weder die Aufgabe noch den Code nennst, können wir das nicht beantworten.

Solltest du eine Klasse für die Liste komplett selbst erstellt haben und darin arbeiten, wäre der Typ des Rückgabe gleich der Name der Klasse.

Dann schreibe ich ja bei Datentyp der Methode und return der emthode das glecieh hin?

nein. Beim Typ in der Signatur gibst du eben genau das an - den Typ des Rückgabewertes. Bei return gibst du das Objekt selbst an, das zurückgegeben werden soll

0
jdqwio2 
Fragesteller
 24.10.2021, 15:22
@xxxcyberxxx

Okay danke dir, dann gebe ich da nur das Objekt an. Aber wie erstelle ich dann eine Liste in der Methode? Ich gehe in der Methode meine selbst erstellte verkettete Liste durch. und bestimmte Elemente von der soll ich in eine Liste packen und dann die Liste zurück geben

0
xxxcyberxxx  24.10.2021, 15:26
@jdqwio2
Okay danke dir, dann gebe ich da nur das Objekt an. Aber wie erstelle ich dann eine Liste in der Methode? Ich gehe in der Methode meine selbst erstellte verkettete Liste durch. und bestimmte Elemente von der soll ich in eine Liste packen und dann die Liste zurück geben

Dann erzeuge einfach über den Konstruktor deiner Klasse eine neue Liste vom Typen deiner Klasse, arbeite damit und gib sie am Ende zurück? Wenn du damit Probleme hast, solltest du vielleicht nochmal die Grundlagen von Methoden durcharbeiten - erstmal ohne Objekte ...

0
jdqwio2 
Fragesteller
 24.10.2021, 15:35
@xxxcyberxxx

Das kann ich machen, aber wie gebe ich dann die Liste zurück?

0
xxxcyberxxx  24.10.2021, 15:35
@jdqwio2
Das kann ich machen, aber wie gebe ich dann die Liste zurück?

Hab ich dir doch schon beantwortet:

nein. Beim Typ in der Signatur gibst du eben genau das an - den Typ des Rückgabewertes. Bei return gibst du das Objekt selbst an, das zurückgegeben werden soll
0

Schreibe die Aufgabe auf! Wörtlich!

Deine zahlreichen Fragen rund um LinkedList (und auch zu Rekursion) sind extrem unverständlich. LinkedList ist eine Klasse in Java. Ich vermute, ihr bastelt euch in Informatik I eure verketteten Listen selbst, ohne Rückgriff auf die Bibliotheksklassen.

Wenn man die Aufgabe nicht kennt (und zwar die Originalaufgabe, nicht deine Interpretation), kann man alles mögliche antworten. Dass dir das hilft, ist dann aber eher unwahrscheinlich.


jdqwio2 
Fragesteller
 24.10.2021, 15:13

Genau, wir erstellen unsere verkettete Liste selber. Nun gehe ich die Methode in einer Klasse durch. Jedes einzelne Element davon und bestimmte Elemente soll ich dann in eine Liste packen und die Liste zurückgeben. Mein Problem ist nur, wie gebe ich die selbst erstellte Liste als return zurück? Als Datentyp gebe ich der Methode den Namen der Klasse an, wo die selbsterstellte verkettete Liste ist, aber bei reutrn, was schreibt man da?

0
Schachpapa  24.10.2021, 15:14
@jdqwio2
Schreibe die Aufgabe auf! Wörtlich! (und zwar die Originalaufgabe, nicht deine Interpretation)

Was verstehst du daran nicht?

0
jdqwio2 
Fragesteller
 24.10.2021, 15:20
@Schachpapa

Achso sorry moment habe das falsch gelesen: Ergänze deine Klasse Liste mit eienr Instanzmethdoe die als Parameter ein einzelnes Zeichen besitzt und eine Liste mit allen Autos zurück gibt, die mit diesem Zeichen anfangen.

Da gehe ich davon aus, ich gehe durch meine selsbt erstellte verkettete Lsite, das kriege ich auch hin und schaue welche Elemente mit dem Zeichen anfangen, aber danach?

0
jdqwio2 
Fragesteller
 24.10.2021, 15:23
@jdqwio2

WIchtig, meine selbst erstellte verkettete Liste besitzt als Elemente natürlich Autos

0
Schachpapa  24.10.2021, 15:30
@jdqwio2

Wenn man jetzt noch den Quelltext deiner bisherigen Lösung sehen könnte.

Vermutlich steht irgendwo in deinem Code

meineListe = new Liste();
...
meineListe.add(element); // oder append oder anhaengen ...

am Ende sollte dann stehen

return meineListe;
0
jdqwio2 
Fragesteller
 24.10.2021, 15:34
@Schachpapa

Ja genau, das habe ich sogar 2x, einmal für den Kopf und einmal für das Ende. Aber wenn ich dann return meineliste (also den Kopf) mache, erhalte ich, dass ein Listenelement nicht an eine Liste gegeben werden kann.

0
Schachpapa  24.10.2021, 15:38
@jdqwio2

Spätestens jetzt kommt man nicht weiter, wenn man deinen Code nicht kennt.

Es gibt eine Webseite, auf der man kostenlos Code posten kann, ich komme aber gerade nicht auf den Namen. Vielleicht ein anderer, der hier mitliest.

Stell dort deine bisherige Lösung ein und poste hier den Link dazu, dann wird dir bestimmt jemand gezielt helfen können.

So wie das jetzt läuft, ist es langwieriger Murx.

0
procoder42  24.10.2021, 15:40
@jdqwio2

Aber du wirst doch eine übergeordnete Klasse Liste/LinkedList/o.ä. haben, die eine Referenz auf den Kopf beinhaltet. Gib doch dieses Listen Objekt zurück.

0