Zwei TreeMap

halla001

Grünschnabel
Hallo liebe Leute,
ich bin Java anfänger!

Ich habe eine TreeMap der für mein Items erstellt.

Ein Weitere TreeMap ist für die Lager. Jede Item ist in verschiedene Lager vorhanden und hat unterschiedliche kenn größe, zumbeipiel reparatur Dauer (Siehe Anhang)

Die Daten werden von ein CSV datei gelesen und in der die beiden TreeMap gespeichert.


Mein erste Frage, ich weiss es nicht ob alle daten in die beiden Tree Map gespeichert.
Zweite Frage, Ich will die Ausgabe haben
Item 0

Lager 0
Lager 1
Lager 2
.....


Item 1

Lager 0
Lager 1
Lager 2
.....


usw.

Bin ich auf der richtigen Weg, oder soll ich andere funktion als TreeMap verwenden.

ich bin euch dankbar, wenn jemand mir helfen kann.

Hier ist mein code
Java:
	public void parseFile(String path) {

		Set<?> setItems;
		Set<?> setWareHouse;

		TreeMap<Integer, Items> myTreeMapItems = new TreeMap<Integer, Items>();
		TreeMap<Integer, Warehouse> myTreeMapWareHouse = new TreeMap<Integer, Warehouse>();
		
		Warehouse warehouse = null;
		Items items = null;

		try {
			CsvReader products = new CsvReader(path);
			products.readHeaders();
			while (products.readRecord()) {

				String productID = products.get("ProductID");
				String productName = products.get("ProductName");
				String productPreis = products.get("UnitPrice");

				String baseID = products.get("BaseID");
				String baseName = products.get("BaseName");
				String lamda = products.get("MeanDemandRate Base");
				String mu = products.get("MTTR Base");
				String ost = products.get("OrderingandShipTime");
				String probability = products.get("RepairProbability Base");

				// perform program logic here

				if (!productID.isEmpty()) {
					
					int produktID = Integer.parseInt(productID);
					int produktPreis = Integer.parseInt(productPreis);

					int base_id = Integer.parseInt(baseID);
					String basename = baseName;
					double demandrate = 0;
					if (!lamda.isEmpty()) {
						demandrate = Double.parseDouble(lamda);	}
					double meanTimeTorepair = Double.parseDouble(mu);
					double orderingandShipTime = Double.parseDouble(ost);
					double probailityBase = Double.parseDouble(probability);
					warehouse = new Warehouse(base_id, basename, demandrate,meanTimeTorepair, orderingandShipTime,probailityBase);
					myTreeMapWareHouse.put(base_id, warehouse);
					items = new Items(produktID, productName, produktPreis,	myTreeMapWareHouse);
					myTreeMapItems.put(produktID, items);
				}
			}
			
			setItems = myTreeMapItems.entrySet();
			Iterator itItems = setItems.iterator();

			while (itItems.hasNext()) {

				Map.Entry me = (Entry) itItems.next();
				items = (Items) me.getValue();
				System.out.println("Items  ID is   : " + items.getItemsID());
				System.out.println("Items  Name is : " + items.getName());
				System.out.println("Items  Preis is: " + items.getPreis());
				System.out.println("Wahre House" + items.getWahreHouse());

			 }
			products.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
 

Anhänge

Zuletzt bearbeitet:
Eine Map wird dann verwendet, wenn ein Schlüssel (key) mit einem Wert (value) gespeichert werden soll. Existiert der Schlüssel bereits, wird der Wert mit dem neuen Wert aktualisiert. Haben Deine Daten einen eindeutigen Schlüssel?

Weshalb zwei TreeMap?
 
im CSV Datei ist deutlich und veranschaulicht die ganze Sache.
Ein Key hat mehrere Value
Zwei treeMap um die Daten zu strukturieren. Ich weiss aber nicht ob so richtig ist, deswegen war meine Frage.

Gruß
 
Ich habe neues Bild gemacht, ich weiss aber nicht wie ich das nochmal hochlade. Wahrscheinlich geht es nicht. oder wirdst du mir Bitte sagen wie es geht. Ich bin neu hier.

Danke
 
@halla001: Auf „Bearbeiten“ klicken, dann auf „Anhänge verwalten“ und dann einen neuen Anhang auswählen und hochladen. Dann auf „Fenster schließen“ klicken. Funktioniert das?
 
Ok, ich konnte die Spaltenbezeichnungen nun lesen. Kleine Frage: Weshalb gehört das Feld MTTR Base zum Warehouse und nicht zum Item?
 
gute Frage!
Wenn man diese Frag von andere Winkel betrachtet, hat jede Ort unterschiedliche Reparatur Raten pro Zeit einheit. Dies ist auch wieder abhängig von die Anzahl der vorhanden Items, die vor Ort sind.
Beispiel.
In Berlin haben wir 100 Platte und München haben wir 10 Platten
Die Reparatur Rate in beide orte für die gleiche Items sind verschieden.

Ich hoffe habe ich gut erklärt. Wenn noch fragen sind, bitte melden
 
Ok, aber so werden bei verschiedenen MTTR Base am gleichen Ort mehrere Warehouses erzeugt, was gemäss Deinem gewünschten Output auch mehrere Lager darstellt.
 
Zurück