enum Attribut von Objekten einer Hashmap ausgeben

nikva

Bekanntes Mitglied
Hallo Java-Forum,
Ich arbeite grade an einer Aufgabe und habe bei folgender Aufgabe Probleme eine toString Methode bei einer HashMap anzuwenden.
Bei mir wird lediglich die Speicheradresse des Objekts ausgegeben.

eine weitere Frage habe ich bezüglich folgendem Teil der auf mich auf den ersten Blick irgendwie widersprüchlich erscheint:
In einem interface soll folgendes implementiert werden:
" Implementieren Sie eine Methode createSerial die eine ganzzahlige Seriennummer für Produkte generiert. Die erste Seriennummer ist 0 und soll bei jedem Aufruf um 1 erhöht werden. Beachten Sie das diese Nummern über das ganze Programm hinweg eindeutig sein müssen. "

Jedoch soll in einer Klasse dann die Seriennummer als Parameter übergeben werden wodurch sie ja nicht mehr eindeutig erzeugt werden könnte?
"Erstellen Sie einen Konstruktor der Seriennummer, Preis und Name als Parameter erhält. "

Ich hoffe mir kann jemand bei den beiden Problemen einen Typ geben :)
Java:
package edu.hm.cs.swe2;

import edu.hm.cs.swe2.food.Cake;
import edu.hm.cs.swe2.food.Cake.Flavour;
import edu.hm.cs.swe2.products.Box;

public class Main {

    public static void main(String[] args) {
        Cake cake1 = new Cake(Flavour.STRAWBERRY, 4);
        Cake cake2 = new Cake(Flavour.CHOCLATE, 7);
        Box<Cake> box = new Box<Cake>(1, 1, "cakebox");
        box.addFoods(cake1, cake2);
        box.toString();
        System.out.println(box);
    }

}
Java:
package edu.hm.cs.swe2.food;

public class Cake extends Food {

    private Flavour flavour;

    public Cake(Flavour flavour, int weight) {
        super(weight);
        this.flavour = flavour;
    }

    public enum Flavour {
        CHOCLATE("Cake Choclate"), VANILLA("Cake Vanilla"), STRAWBERRY("Cake Strawberry");

        private final String name;

        private Flavour(String name) {
            this.name = name;
        }

        public String toString() {
            return this.name;
        }

    }
}
Java:
package edu.hm.cs.swe2.products;

import java.util.HashSet;
import java.util.Iterator;

import edu.hm.cs.swe2.exceptions.NothingToAddException;

public class Box<T> extends Product implements Placeable {

    public HashSet<T> content = new HashSet<T>();

    public Box(int serialID, int price, String productName) {
        super(serialID, price, productName);
        this.content = new HashSet<T>();

    }

    @Override
    public int getProductSerial() {
        return this.getSerialID();
    }

    public void addFood(T food) throws NothingToAddException {
        if (food == null) {
            throw new NothingToAddException();
        }
        content.add(food);
    }

    public int addFoods(T... foodsToAdd) {
        int foodsAdded = 0;
        if (foodsToAdd.length >= 3) {
            System.out.println("Too much Content. Nothing added.");
        } else {

            for (int i = 0; i < foodsToAdd.length; i++) {
                try {
                    this.addFood(foodsToAdd[i]);
                    foodsAdded++;
                } catch (NothingToAddException e) {
                }
            }
        }
        return foodsAdded;
    }

    public String toString() {
        if (this.content.isEmpty()) {
            return ("Contents in Box: Empty.");
        } else {
            Iterator<T> it = this.content.iterator();
            String contentOfBox = ("Contents in Box:  ");
            while (it.hasNext()) {
                contentOfBox += (" | " + it.next());
                System.out.println(it.next());
            }
            return contentOfBox;
        }

    }
}

konsole:
edu.hm.cs.swe2.food.Cake@2f92e0f4
edu.hm.cs.swe2.food.Cake@2f92e0f4
Contents in Box: | edu.hm.cs.swe2.food.Cake@372f7a8d
nRwQeMy.png
 
Zuletzt bearbeitet:

nikva

Bekanntes Mitglied
Wenn ich in der Methode addFoods >3 statt >=3 setze kriege ich plötzlich einige Fehlermeldungen bezüglich der Hashmap

Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1497)
at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1518)
at edu.hm.cs.swe2.products.Box.toString(Box.java:56)
at java.base/java.lang.String.valueOf(String.java:3352)
at java.base/java.io.PrintStream.println(PrintStream.java:977)
at edu.hm.cs.swe2.Main.main(Main.java:15)

dabei geht es da doch nur um eine simple Print Ausgabe?
 

MoxxiManagarm

Top Contributor
Kleiner Hinweis von mir noch. "Selbst verständlich darf es sich bei den verpackten Dingen nur um Nahrungsmittel handeln." Diese Bedingung ist noch nicht erfüllt. Du könntest genauso eine Box<String> aktuell erstellen.
 

nikva

Bekanntes Mitglied
Kleiner Hinweis von mir noch. "Selbst verständlich darf es sich bei den verpackten Dingen nur um Nahrungsmittel handeln." Diese Bedingung ist noch nicht erfüllt. Du könntest genauso eine Box<String> aktuell erstellen.
Ok, es muss Box<Food> heißen!


Das Problem mit der Hashset hab ich jetzt gelöst in dem ich die line
Java:
                System.out.println(it.next());
aus der addFoods Methode gelöscht habe. Eigentlich wollte ich dabei nur die doppelte Ausgabe beheben aber jetzt tritt auch der Fehler nicht mehr auf. Liegt es vll daran, dass er durch den doppelten Aufruf von this.next 2 mal gesprungen ist und dann zwangsläufig ans ende kommt?
Müsste es nicht eigentlich auf das selbe Objekt verweisen wie die Zeile drüber?
Java:
                contentOfBox += (" | " + it.next());
 

nikva

Bekanntes Mitglied
also so:
Java:
public class Box<T extends Food> extends Product implements Placeable {
Box muss mindestens mit Food objekten belegt werden oder Objekten die von Food erben
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
S Java Enum Java Basics - Anfänger-Themen 2
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
V Enum Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
I JAXB und Enum Java Basics - Anfänger-Themen 7
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
N Enum Typen, was passiert intern mit ihnen? Java Basics - Anfänger-Themen 2
A enum Java Basics - Anfänger-Themen 6
O Enum Array Rekursiv abarbeiten Java Basics - Anfänger-Themen 44
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
N Java Enum converter Methode Java Basics - Anfänger-Themen 5
F Enum von Ländern Java Basics - Anfänger-Themen 8
J Klassen Enum als Informationsträger Java Basics - Anfänger-Themen 10
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
R Enum ist das gleiche wie? Java Basics - Anfänger-Themen 15
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
E Objektvergleich Enum Java Basics - Anfänger-Themen 7
kilopack15 Euromünzen in enum als Liste ausgeben Java Basics - Anfänger-Themen 11
N Enum als generischer Typ Java Basics - Anfänger-Themen 4
H Datentypen Fehler bei Verwendung von enum Java Basics - Anfänger-Themen 9
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
S Menüauswahl per Enum Java Basics - Anfänger-Themen 12
F Enum via String definieren Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
P Fallunterscheidung mit Überprüfung (enum) Java Basics - Anfänger-Themen 11
H enum Type Java Basics - Anfänger-Themen 6
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
kaoZ Variablen Konstantensammlung vs. Enum Java Basics - Anfänger-Themen 9
H Enum außerhalb einer Klasse? Java Basics - Anfänger-Themen 2
K OOP Aufzählungstypen! enum Currency!!! Java Basics - Anfänger-Themen 5
F ENUM als Variable Java Basics - Anfänger-Themen 4
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
A Erste Schritte ENUM - Werte zurückgeben Java Basics - Anfänger-Themen 5
D Enum als Parameter Java Basics - Anfänger-Themen 6
B Variablen Instanz von Enum zur Laufzeit erstellen und zuweisen Java Basics - Anfänger-Themen 2
B Datentypen Enum vererben/gruppieren? Java Basics - Anfänger-Themen 6
F Datentypen enum Java Basics - Anfänger-Themen 5
J Enum zählen Java Basics - Anfänger-Themen 8
D Einlesen eines Enum-Wertes per console Java Basics - Anfänger-Themen 3
K String mit ENUM vergleichen? Java Basics - Anfänger-Themen 6
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
D Erste Schritte Enum - das unbekannte Wesen Java Basics - Anfänger-Themen 3
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
pg1337 enum-Aufgabe Java Basics - Anfänger-Themen 5
N was sagt enum aus? Java Basics - Anfänger-Themen 3
S Methoden Enum Parameter in Methode Java Basics - Anfänger-Themen 7
G Datentypen enum Frage Java Basics - Anfänger-Themen 3
R Probleme mit Enum Java Basics - Anfänger-Themen 10
B Enum: Instanzen Java Basics - Anfänger-Themen 10
B Generic? Enum - So lösbar? Java Basics - Anfänger-Themen 8
T class, interface, or enum expected Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
4 Enum Problem Java Basics - Anfänger-Themen 2
turmaline Bindestrich in enum? Java Basics - Anfänger-Themen 5
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
T ist enum.ordinal keine Konstante? Java Basics - Anfänger-Themen 7
R State machine mit enum Java Basics - Anfänger-Themen 9
L enum aus Integer umwandeln Java Basics - Anfänger-Themen 3
C Klasseninstanzierung mit enum-Parameter erzwingen Java Basics - Anfänger-Themen 2
I Enum in String Java Basics - Anfänger-Themen 4
N enum richtig verwenden Java Basics - Anfänger-Themen 5
M for(Enum..., ButtonGroup.getElements()... Java Basics - Anfänger-Themen 3
StrikeTom Fragen zu enum Java Basics - Anfänger-Themen 4
A Was ist performanter für Konstanten, enum oder static variablen Java Basics - Anfänger-Themen 5
L String zu Enum parsen Java Basics - Anfänger-Themen 8
J Datentypen Array in enum, ?? Wozu ?? Java Basics - Anfänger-Themen 3
S OOP Durch ein Enum iterieren... Java Basics - Anfänger-Themen 47
K Datentypen enum und liste Java Basics - Anfänger-Themen 7
S String - Enum Java Basics - Anfänger-Themen 3
H Eine enum switchen? Java Basics - Anfänger-Themen 7
G enum für Typsicherheit Java Basics - Anfänger-Themen 9
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
J OOP enum Java Basics - Anfänger-Themen 2
O Problem (Enum) Java Basics - Anfänger-Themen 14
S Enum als Index Java Basics - Anfänger-Themen 5
H Enum --> int ?? Java Basics - Anfänger-Themen 3
tanja enum in java Java Basics - Anfänger-Themen 3
D class, interface or enum expected Java Basics - Anfänger-Themen 2
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
T Simple Enum Fragen Java Basics - Anfänger-Themen 6
J class, interface, or enum expected Java Basics - Anfänger-Themen 4
R Enum und dann setter Setzen? Java Basics - Anfänger-Themen 44

Ähnliche Java Themen

Neue Themen


Oben