BlueJ: Anfängerprojekt mit HashMap

Status
Nicht offen für weitere Antworten.

BillyBob

Mitglied
Hallo zusammen

Ich muss folgende Aufgabe berarbeiten:

Aufgabe: Lagersystem

a) Erstellen Sie zunächst die Klasse Produkte

Die Datenfelder hersteller und kommentar speichern die Informationen zu einem Artikel, artikelnummer speichert die Artikelnummer (Heinweis: Artikelnummern können sowohl Zahlen als auch Buchstaben enthalten). Sie sollen durch Eingabeparameter im Konstruktor initialisiert werden.

Das Datenfeld anzahl enthält den Lagerbestand des Artikels. Es wird im Konstruktor mit 0 initialisiert.

Die Methode erhoehen ermöglicht die Anzahl um eine beliebige Stückzahl zu erhöhen.

Die Methode ausbuchen ermöglicht die Anzahl um eine beliebige Stückzahl zu verringern


b) Erstellen Sie eine Klasse Produktverwaltung.

Diese Klasse soll eine Sammlung einer beliebigen Anzahl von Produkten enthalten. In der Sammlung soll über den Schlüssel artikelnummer auf den jeweiligen Artikel zugegriffen werden können.

Mit der Methode produktAnlegen(<hier passende Parameter einfügen>) soll es möglich sein, ein neues Produkt zu erzeugen. Neu angelegte Produkte müssen immer in die Sammlung aller Produkte eingefügt werden.

Die Aufgabe a) war kein Problem. Aber bei b) bin ich mir nicht ganz sicher... Ich habe meinen Code unten einmal gepostet (inkl. der Aufgabe a)... Muss man diese Aufgabe mit einem HashMap lösen oder gibt es da noch andere Möglichkeiten? Ich verstehe den Zusammenhang von a und b nicht ganz... man hat ja eigentlich in a bereits Produkte erzeugt oder nicht?

Vielen Dank für Eure Hilfe!

Code:
public class Produkte
{
    private String hersteller;
    private String kommentar;
    private String artikelnummer;
    private int anzahl;

  
    public Produkte(String hersteller, String kommentar, String artikelnummer)
    {
        this.hersteller = hersteller;
        this.kommentar = kommentar;
        this.artikelnummer = artikelnummer;
        anzahl = 0;
    }


    public void erhoehen(int anzahl)
    {
        this.anzahl += anzahl;
    }
    
    public void ausbuchen(int anzahl)
    {
        this.anzahl -= anzahl;
    }
}
Code:
import java.util.ArrayList;


public class Produktverwaltung
{
    private ArrayList<Produkte> prod;


    public Produktverwaltung()
    {
        prod = new ArrayList<Produkte>();
    }

 
    public void erfasseMedium(Produkte Produkt)
    {
        prod.add(Produkt);
    }


}
[/code]
 
S

SlaterB

Gast
> Muss man diese Aufgabe mit einem HashMap lösen oder gibt es da noch andere Möglichkeiten?

du kannst sie auch in eine Liste schreiben und bei Rückgabe des Produktes zur Artikelnummer die Liste durchlaufen und einzeln vergleichen,
ist technisch machbar aber nicht so schön wie eine Map

> Ich verstehe den Zusammenhang von a und b nicht ganz...

die Klasse aus b enthält Objekte der Klasse aus a,
welch einfacheren Zusammenhang könnte es geben?

> man hat ja eigentlich in a bereits Produkte erzeugt oder nicht?

in a hat man eine Klasse geschrieben, nichts erzeugt,

strenggenommen schreibt man in b wieder nur eine Klasse, naja, das wird philosophisch,

stelle dir vor, du hättes im Kunstunterricht in a) ein Auto gemalt und in b) einen Parkplatz mit Autos ;)
 

BillyBob

Mitglied
hallo SlaterB

Vielen Dank, dass Du Zeit für mein Problem geopfert hast.

Wie erzeuge ich dann das Objekt in b oder einfacher gesamt, ich erstelle die Instanzen in a und gebe sie dann wieder in die List ein oder ist dies anders gemeint??? Wie würdest Du die Produktverwaltung progammieren??? Ist mein Lösungsvorschlag soweit gut???

VIELEN DANK!!!!
 
S

SlaterB

Gast
das Objekt erzeugst du so wie du alle Objekte in Java erzeugst,
prod = new ArrayList<Produkte>();
hast du ja schon hinbekommen,

was ist an new Produkt(); dann anders? du musst nur zusätzlich die Parameter des Konstruktors übergeben

> ich erstelle die Instanzen in a und gebe sie dann wieder in die List ein oder ist dies anders gemeint???

a und b sind Aufgaben, keine Akteure in deinem Programm..

erstellte Produkte sollst du in der Produktverwaltung aufbewahren,
ob das nun das Einfügen in die Liste oder sonst was bedeutet musst du schon selber entscheiden

> Wie würdest Du die Produktverwaltung progammieren???

erstklassig ;)

> Ist mein Lösungsvorschlag soweit gut???

duchaus, obwohl ne Map schöner wäre als ne Liste,
kann aber sein dass du das noch nicht kennen musst
 
G

Gast

Gast
Hallo...

Danke für deine Ausführungen.

Habe jetzt alles als HashMap umgeschrieben. Mir ist aber immer noch unklar, wie ich bei newProduct() eines Produkt erstellen kann und dies noch zusätzlich in die HashMap ablegen kann???
 
S

SlaterB

Gast
das sind zwei einzelne Schritte,
der erste hat mit new Product() zu tun, was ist daran unklar?
der zweite hat mit der put-Methode der Map zu tun, was ist daran unklar?
 

BillyBob

Mitglied
ok... danke... es funktioniert glaube ich langsam... (sehr langsam).... :lol:

Ich arbeite in BlueJ und normal werden ja unten alle Instanzen aufgeführt, führt es bei dieser Methode keine Instanzen vom Produkt auf?? Sind die im Hintergrund gespeichert?


Beim Print Out der HashMap (nach Eingabe der Artikelnummer), kommt jetzt eine Speicheradresse (z.B. Produkt@94af2f). Mit welchem Befehl kann ich diese "mappen" damit alle Datenfelder meines Produktes angezeigt wird?
 
S

SlaterB

Gast
> Ich arbeite in BlueJ und [..]

da bin ich überfragt

> Beim Print Out

entweder

System.out.println(produkt.getHersteller() + ..);

oder
System.out.println(produkt.getKompletteBeschreibungAlsString());

oder
System.out.println(produkt);

wenn die Standard-Methode
public String toString() {
}
ordentlich implementiert ist
 

BillyBob

Mitglied
ok danke... habe es hingekriegt.... mit Iterator und toString()

Kann ich mit einem Iterator auch eine Methode aus Produkt für jeden Datensatz bzw. bestehendes Datenset durchlaufen... ich habe anstatt den Print-Befehl... die Methode eingefügt, das geht aber irgendwie nicht...

Ich würde gerne alle Produkte durchlaufen und wenn ein Produkt die Anzahl > 40 hat ein boolean True setzen bei Datenfeld Aktion...

Die Methode in der Klasse Produkt habe ich bereits mit einer IF-Bedingung geschrieben...
 
S

SlaterB

Gast
> Kann ich mit einem Iterator auch eine Methode aus Produkt für jeden Datensatz bzw. bestehendes Datenset durchlaufen...

ja

> das geht aber irgendwie nicht...

Code posten
 

BillyBob

Mitglied
In der Klasse Produkt:
Code:
public void Aktion()
    {
        if(Anzahl >40) {
            aktion = true;
        } 
        else {
            aktion = false;
        }

    }

In der Klasse Produktverwaltung:
Code:
public void aktionAufrufen(){ 
      Iterator it = produktliste.keySet().iterator(); 
      while (it.hasNext()) { 
      String key = (String)it.next(); 
      
             Produkt.Aktion();
}
 
S

SlaterB

Gast
was soll denn
> Produkt.Aktion();
bewirken?

eine nichtstatische Methode kann man doch nicht an der Klasse aufrufen,
du schreibst doch auch produktliste.keySet();
und nicht HashMap.keySet()?

aller unterste Grundlagen, bevor man überhaupt an so komplizierte Dinge wie HashMaps denken kann..

mit dem key holst du dir das Produkt:
Produkt p = map.get(key);
und an p kannst du Methoden aufrufen:
p.Aktion();

Methoden klein schreiben! ganz einfache Regel

du könntest auch direkt das Set map.values() durchlaufen,
dann musst du nicht mit Keys hantieren
 

BillyBob

Mitglied
langsam kommt das ganze in die gänge...

leider habe ich noch nicht viel ahnung von java, aber dies ist halt so, wenn einem im unterricht vorgezeigt wird, wie man einen papierflieger erstellt und man nachher einen a380 erschaffen muss ;-)

noch eine frage: :) *sorry*... gibt es eine möglichkeit, dass man duplikate nur einmal auflistet, d.h. alle hersteller auflistet aber duplikate nicht zulässt?

meine idee... alle hersteller in ein hashset und dann dieses hashset auslesen.... aber da gibt es sicherlich vom profi bessere und schönere lösungsmöglichkeiten?!
gruss & danke
 
S

SlaterB

Gast
HashSet ist sehr professionel, und entschuldigen muss sich niemand
 
G

Gast

Gast
Hallo BillyBob

Mich würde es interessieren, wie du nun die Aufgabe gelöst hast. Könntest du bitte deine vollständige Lösung reinstellen.

Merci
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
W Pfeilenformen im BlueJ Java Basics - Anfänger-Themen 9
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
Vernon.098 Java (BlueJ) Mensch ärgere dich nicht Programmien Java Basics - Anfänger-Themen 6
momo96 bluej Java Basics - Anfänger-Themen 2
K BlueJ Ball an Rand Reflektieren Java Basics - Anfänger-Themen 2
YAZZ BlueJ Bewegung einer Figur im Kreis Java Basics - Anfänger-Themen 4
Delonyg Bluej Supermarkt Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
N BlueJ Implementation Analoguhr Java Basics - Anfänger-Themen 33
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
C Projekt öffnen BlueJ Java Basics - Anfänger-Themen 1
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
K Testen in BlueJ Java Basics - Anfänger-Themen 2
C BlueJ Zahlenschloss programmieren Java Basics - Anfänger-Themen 5
1 BlueJ Fehler ? Java Basics - Anfänger-Themen 7
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
D BlueJ Java: Strings voneinander trennen Java Basics - Anfänger-Themen 11
V ToString-Methode mit JUnit testen(BlueJ) Java Basics - Anfänger-Themen 10
G Variablen Variable nimmt keinen Wert an (BlueJ) Java Basics - Anfänger-Themen 4
I BlueJ importdatei fehlt Java Basics - Anfänger-Themen 4
D Java BlueJ Programm wiederholen? Java Basics - Anfänger-Themen 6
J Uniprojekt (BlueJ) Java Basics - Anfänger-Themen 17
H Klassen Hilfe bei BlueJ, Supermario Java Basics - Anfänger-Themen 5
W Testmethoden in BlueJ Java Basics - Anfänger-Themen 12
F Java BlueJ Dinge verschwinden lassen Java Basics - Anfänger-Themen 2
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
E Hilfe bei Lambda-Ausdrücken in BlueJ Java Basics - Anfänger-Themen 1
J BlueJ und import-Anweisungen, wie geht das? Java Basics - Anfänger-Themen 4
K BlueJ Terminverwaltung erstellen Java Basics - Anfänger-Themen 1
J BlueJ - kompilieren - und wie weit kommt man mit BlueJ? Java Basics - Anfänger-Themen 4
J Thread erstellen (BlueJ Projekt) Java Basics - Anfänger-Themen 3
I Erste Schritte BlueJ Fehler Java Basics - Anfänger-Themen 8
C Manuelle Parametereingabe in BlueJ Java Basics - Anfänger-Themen 5
D Wer wird Millionär ? BlueJ Java Java Basics - Anfänger-Themen 2
P BlueJ Sieb des Eratothenes Java Basics - Anfänger-Themen 4
M Ausgeben eines 2D Arrays mit int UND String werten - BLUEJ! Java Basics - Anfänger-Themen 4
G BlueJ Stacks Bahnhof Java Basics - Anfänger-Themen 2
J BlueJ öffnet package falsch Java Basics - Anfänger-Themen 2
J BlueJ Liste Würfel Projekt Java Basics - Anfänger-Themen 2
P Java mit BlueJ - Hilfe - Gegenstände Java Basics - Anfänger-Themen 10
H BlueJ Java Basics - Anfänger-Themen 3
L Queue programmieren via BlueJ Java Basics - Anfänger-Themen 5
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
X Erste Schritte Java BlueJ Programmieren Java Basics - Anfänger-Themen 36
Tally Methoden BlueJ - Datum als Kalendertag int - tagImJahr Java Basics - Anfänger-Themen 6
J BlueJ canvas Buttons adden? Java Basics - Anfänger-Themen 2
J BlueJ Tic Tac Toe öffnen? Java Basics - Anfänger-Themen 6
T Erste Schritte BlueJ kapitel 4 frage Schleifen ? Java Basics - Anfänger-Themen 4
V BlueJ: Funktionierende .jar Datei erstellen Java Basics - Anfänger-Themen 2
G Methoden BlueJ SuM Methode wird nicht gefunden Java Basics - Anfänger-Themen 9
S Pakete in BlueJ Java Basics - Anfänger-Themen 5
T Snake-BlueJ Bewegung Java Basics - Anfänger-Themen 7
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
T Snake mit Bluej Java Basics - Anfänger-Themen 8
R BlueJ - Hilfe bei for-Struktur Java Basics - Anfänger-Themen 11
S Erste Schritte BlueJ-Aufgabe: Programmcode / Brauche dringend Hilfe !!! Java Basics - Anfänger-Themen 37
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
P Java BlueJ Schatzsuche Java Basics - Anfänger-Themen 2
H Erste Schritte von BlueJ zu Eclipse Java Basics - Anfänger-Themen 10
I Rc4 Verschlüsselung in BlueJ Java Basics - Anfänger-Themen 18
H Buch: Java lernen mit BlueJ Modulo-Operator Java Basics - Anfänger-Themen 16
X Methoden Java Dublikatsuche Hilfe(BlueJ) Java Basics - Anfänger-Themen 9
X Interpreter-Fehler "java.lang.NullPionterException: null" bei BlueJ Java Basics - Anfänger-Themen 10
C Problem bei BlueJ - Pfeil bleibt nicht in der Dartscheibe stecken Java Basics - Anfänger-Themen 4
M mit BlueJ einen Ticketautomaten programmieren Java Basics - Anfänger-Themen 9
Binary.Coder Bluej ähnlicher Inspektor gesucht Java Basics - Anfänger-Themen 3
T problem mit der maus in BlueJ Java Basics - Anfänger-Themen 14
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
R BlueJ Pacman Java Basics - Anfänger-Themen 17
B BlueJ Turtle nicht gefunden Java Basics - Anfänger-Themen 6
J start(); bei bluej Java Basics - Anfänger-Themen 3
E BlueJ Projekt öffnen Java Basics - Anfänger-Themen 15
Jats Probleme mit BlueJ und Bankkonto-Methoden Java Basics - Anfänger-Themen 7
A BlueJ BMI berechnen Java Basics - Anfänger-Themen 9
D BlueJ Anzeigeproblem Java Basics - Anfänger-Themen 5
L String Variable zurückgeben mit BlueJ Java Basics - Anfänger-Themen 12
J BlueJ Zeichen, Dart-Pfeil Java Basics - Anfänger-Themen 59
B Paket in BlueJ einfügen Java Basics - Anfänger-Themen 5
C BlueJ zum Laufen bekommen Java Basics - Anfänger-Themen 14
M BlueJ Problem Java Basics - Anfänger-Themen 6
P BlueJ hängt sich beim compilen auf Java Basics - Anfänger-Themen 9
P BlueJ Fehlermeldung - Illegal Start of Type Java Basics - Anfänger-Themen 8
S Klasse Zeichenfenster und BlueJ - Könnt ihr mir helfen? Java Basics - Anfänger-Themen 4
A Datentyp Char wird in BlueJ nur als leerer weißer Kasten dargestellt Java Basics - Anfänger-Themen 1
A JButton erscheint nicht (BlueJ) Java Basics - Anfänger-Themen 2
E BlueJ und Zeichenketten. S83 Übung 2.72 Java Basics - Anfänger-Themen 3
H BlueJ mehrere Klassen Java Basics - Anfänger-Themen 6
Binary.Coder Wechsel von BlueJ zu Eclipse Java Basics - Anfänger-Themen 7
G BlueJ jUnit Test Java Basics - Anfänger-Themen 6
G Klassenhierarchie in BlueJ. Java Basics - Anfänger-Themen 3
G BLueJ Aufgabe Java Basics - Anfänger-Themen 11
G Bluej startet nicht Java Basics - Anfänger-Themen 5
D String - BlueJ Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben