Stimmen diese Methoden für meine ArrayList?

Hallo, ich soll ein paar Methoden schreiben, um Produkte in meiner ArrayList "produkte" hinzuzufügen, zu löschen(ein mal oder mehrere male), auszugeben(also man übergibt z.B Äpfel und bekommt dann gesagt, dass 2 verfügbar sind) und verkaufen(der gesamtpreis soll berechnet und der Warenspeicher geleert werden. Ich habe damit schon angefangen, jedoch habe ich bei manchen ein paar Probleme.

  1. Bei der Add Methode bin ich mir sicher, dass alles richtig ist.
  2. Bei der Anzahl Methode habe ich das Gefühl, dass da irgendwas falsch ist, in der Aufgabe ist gewollt, dass man die Anzahl der übereinstimmenden Produkte ausgibt, ich habe aber "gesuchtes Produkt" garnicht angegeben, ist das falsch?
  3. EntferneProdukt ist dann wieder denke ich mal richtig.
  4. Bei dieser Methode gibt es noch eine Anzahl, wie genau mache ich das? Man soll z.B sagen können:" Entferne 3 mal Äpfel, obwohl 4 da sind. Zu beachten ist noch, dass die zu löschende Anzahl nicht größer sein darf, als die Anzahl im Speicher. In der Aufgabe steht, dass man alte Methoden verwenden darf, was ich auch versucht habe, ich glaube allerdings, dass das falsch ist.
  5. Bei der Verkaufsmethode weiß ich nicht wie ich die ganzen Produkte berechnen soll, es wird gefordert, dass der gesamte Verkaufswert der Produkte berechnet und zurückgegeben wird. Danach soll die ArrayList geleert werden.

Wie genau verändere ich am besten den Code, damit das alles funktioniert? Vielen Dank :)

...zum Beitrag

Ah du schon wieder ;)

Ok...

Nur mal vorneweg, du hast ganz schönen Mist geschrieben...

Erstens:

Die Methode "anzahlImSpeicher" ist ziemlich sinnentleert...

Du übergibst ihr einen String "gesuchtes Produkt", was du aber völlig ignorierst und einfach nur die Gesamtgröße der ArrayList zurückgibst.

Das ist natürlich falsch...

So, nun machen wir das mal richtig...

Eine Musterlösung von mir würde so aussehen:

public int anzahlImSpeicher(String gesuchtesProdukt)
{
   int result = 0  //Hier wird das Endergebnis gespeichert


   // Was hier kommt ist eine sogennante "erweiterte for-Schleife
   // Sie macht nichts anderes, als für jedes Produkt in deiner
   // ArrayList einen Durchlauf vom Rumpf für jedes enthaltene
   // Element zu machen

   // Sieh den Kopf dieser Schleife so:
   // for(Produkt produkt : produkte) bedeutet in etwa:
   // Für jedes "produkt" in "produkte" wird der Rumpf ausgeführt...
   for(Produkt produkt : produkte)
   {
      // Strings IMMER mit der .equals()-Methode vergleichen !!!!
      if(produkt.getname().equals("gesuchtesProdukt")
      {
         result++;
      }
      // Wir schauen für jedes einzelne Objekt in der Liste,
      // ob es unser gesuchtes ist. Falls dies zutrifft, erhöhen
      // wir den Zähler um Eins und geben ihn am Ende aus.
   }
   return result
}

So viel dazu...

Und nein, deine entfernen-Methode ist NICHT richtig...

Du möchtest jetzt aus deiner ArrayList von Produktobjekten ein gewisses Objekt entfernen, indem du einen String angibst, der den Namen von dem zu entfernenden Objekt repräsentiert. Dann kannst du der ArrayList nicht einfach einen String geben, den er entfernen soll, das kann er auch gar nicht, er hält ja nur Produkt-Objekte und keine Strings. Das musst du irgendwie berücksichtigen.

...

Und für den Rest bin ich gerade irgendwie zu faul xD


PS: Das, was ihr da macht ist echt hässlich. Normalerweise, würde man nie im Leben Strings als Namen übergeben, weil dann so ein Mist wie beim entfernen zum Problem wird, sondern gleich ganze Produkt-Objekte, wie du es ja auch bei der Methode "fuegeHinzu" gemacht hast, das hat aber leider auch einen ganz guten Grund, also musst du da auch leider durch ;)

...zur Antwort

klar du musst nur die dateien aus dem ordner rausholen und kopieren. C --> dein Benutzername --> Eigene Dokumente --> My Games --> Terraria --> Players/Worlds

...zur Antwort

Die Stände für den Multiplayer werden auf jeden Fall auf den Battlefield Server gespeichert, die gehen nicht verloren. Jedoch werden die Singleplayer-Stände auf deinem PC gespeichert, heißt wenn du BF4 deinstallierst, gehen sie verloren, jedoch kannst du, solltest du es mal reinstallieren, entscheiden, ob du deine alten Spielstände aus der Origin-Cloud wieder herunterladen möchtest, um mit den alten Spielständen weiterzuspielen (voruasgesetzt sie wurden in die Cloud hochgeladen).

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.