HashMap - Uni Hausaufgabe

nubetx

Neues Mitglied
Hallo, ich bin seit längeren an dieser Aufgabe dran (siehe Bild)Aufgabe.PNG
Ich komme daran nicht weiter? ._. Hat jemand vielleicht gute Beispiele wie ich sowas hinbekommen könnte?
Eventuell gute Anleitungen?
Hänge seit Tagen dran und es ergibt sich nichts ordentliches mit dem was ich aus dem Netz ausprobiere.
 

nubetx

Neues Mitglied
Also in der Aufgabenstellung wird verlangt das man zB. Nüsse eingeben kann & dann die Anzahl davon.
Das soll dann in der Hashmap automatisch hinterlegt werden, oder?
Und genau daran hänge ich, wie ich das hinbekommen soll.
Es gibt zahlreiche Anleitungen wie man im Code was eingeben kann sodass es dann in der Konsole ausgegeben wird, aber sofern ich die Aufgabe richtig verstehe ist bei mir genau das Gegenteil verlangt also das ich in der Konsole zb:
Was für ein Lebensmittel haben Sie: Nuss
Anzahl: 14

eingeben muss und das es dann hinterlegt wird und ich es dann wieder abrufen kann?

Ein angefangenen Code habe ich zwar, aber hänge daran fest. Und bis jetzt ist der irgendwie echt nicht gut in meinen Augen :confused:
 
Zuletzt bearbeitet:
N

neoexpert

Gast
Eine (Hash)Map ermöglicht es Keys den Values zuzuordnen. So ähnlich wie bei einem Array ein ArrayIndex dem dszugehörigem Wert zugeordnet ist.
Java:
HashMap<Lebensmittel,Quantität> hm=new HashMap<Lebensmittel,Quantität>();
hm.put(Möhre,5);
hm.get(Möhre);// gibt 5 zurück
 

Robat

Top Contributor
Also in der Aufgabenstellung wird verlangt das man zB. Nüsse eingeben kann & dann die Anzahl davon.
Das soll dann in der Hashmap automatisch hinterlegt werden, oder?

So siehts aus.

Es gibt zahlreiche Anleitungen wie man im Code was eingeben kann sodass es dann in der Konsole ausgegeben wird,
Das ist doch schon mal ein Ansatz.
Du hast also 2 Fragen:
- Welches Lebensmittel soll eingetragen werden?:
- Wie oft besitzten Sie dieses Lebensmittel

Den Input speicherst du meinet wegen in 2 Variablen (String --> Name und int --> Anzahl) und fügst diese danach mit deiner eigenen Methode zur HashMap hinzu.

Insgesamt sollst du 2 Methoden erstellen. Eine, die ein Lebensmittel hinzufügt und eine, die die Anzahl des Lebensmittels ausgibt.
Diese könnten so aussehen:
Java:
public void addFood()
{

    OUT: Name des Lebensmittel?
    IN name;

    OUT: Anzahl des Lebensmittel?
    IN quantity;

    IF fridgeContent NOT CONTAINS name
    {
          fridgeContent.add(name, quantitiy); 
    }
    ELSE
    {
        OUT: Lebensmittel existiert bereits.
    }
}

public void getQuantity()
{
  
     OUT: Von welchem Lebensmittel wollen Sie die Anzahl wissen?
     IN: name;

     IF fridgeContent CONTAINS name
     {
          quantity = fridgeContent.get(name);
          OUT: Das Lebensmittel <name> ist <quantitiy> mal vorhanden.
     }
}

(Nur Pseudocode!)

Jetzt noch ein paar Denkanstöße:

Initialiseren einer Map:
Java:
 Map fridgeContent = new HashMap<String, Integer>();

Input:
Java:
Scanner s = new Scanner(System.in);
String name = s.nextLine();

int quantity = Integer.parseInt(s.nextLine());

Output:
Java:
System.out.println("Ausgabe mit neuer Zeile");
System.out.print("Ausgabe ohne neue Zeile");

Wert einer HashMap bekommen / auf existenz prüfen
Java:
int quantity = fridgeContent.get("gurke");

if(fridgeContent.contains("banane")
{
     // ... Lebensmittel ist vorhanden
}

So..
Ich denke mal damit solltest du jetzt erstmal ein Stück kommen.

Die Kurzfassung kriegst du bei @neoexpert :D

Gruß
Robert
 
Zuletzt bearbeitet:

thecain

Top Contributor
Einfach die Map stimmt bei beiden nicht.

Java:
Map<String, Integer> kuehlschrankInhalt = new HashMap<>();
 
X

Xyz1

Gast
Hier kommt wieder mein Flow chart ins Spiel:
code2flow_92d2e.png
Ich werd langsam besser darin^
Zuerst erstellst du den Kühlschrank mit String und Integer
Dann rufst du die Methode add Lebensmittel auf
Diese prüft dann, ob es den Eintrag gibt, und addiert dann die Mengen :)
Anschließend ruft sie sich selber wieder auf - oder eine Schleife

Ihr könnt mich ja verbessern, wenn ich die Aufgabe falsch verstanden haben sollte
 

Oben