# Map und List vergleichen und mittels Schleife ausgeben



## peha81 (17. November 2008)

Hallo zusammen... Ich muss ein kleines Programm schreiben, das Soll- und Ist-Liefertermine miteinander vergleicht. Die Sollwerte sollen in eine map und die Istwerte in eine list eingefügt werden.
Das Programm soll nun die Differenz der jeweiligen Daten in Tagen ausgeben.

Die jeweiligen Daten sollen mittels der GregorianDate Klasse erfasst werden.

Die Ausgabe und die Berechnung der Differenz soll mittels einer Schleife (for?) realisiert werden.

Ich habe hier mal meinen quellcode allerdings ohne Schleife, da ich das beim besten willen nicht gebacken bekomme


```
import java.util.ArrayList;
	import java.util.GregorianCalendar;
	import java.util.HashMap;

public class uebung1 {

			public static void main (String []args){

				//Setzen der Sollwerte für die Lieferungen
			
			GregorianCalendar Auftrag1 = new GregorianCalendar();
			Auftrag1.set (2008, 10, 10);
			GregorianCalendar Auftrag2 = new GregorianCalendar();
			Auftrag2.set (2008, 12, 23);
			GregorianCalendar Auftrag3 = new GregorianCalendar();
			Auftrag3.set (2008, 10, 15);
			GregorianCalendar Auftrag4 = new GregorianCalendar();
			Auftrag4.set (2008, 7, 1);
			GregorianCalendar Auftrag5 = new GregorianCalendar();
			Auftrag5.set (2008, 6, 23);
			
			//Umwandeln der Daten in das Simple Date Format
			
			java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf3 = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf4 = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf5 = new java.text.SimpleDateFormat("dd.MM.yyyy");
					
			//Anlegen der Hashmap
			
			HashMap<Integer, String > hmap = new HashMap<Integer, String> ();
			hmap.put(1, sdf1.format(Auftrag1.getTime()));
			hmap.put(2, sdf2.format(Auftrag2.getTime()));
			hmap.put(3, sdf3.format(Auftrag3.getTime()));
			hmap.put(4, sdf4.format(Auftrag4.getTime()));
			hmap.put(5, sdf5.format(Auftrag5.getTime()));
					
			//Tatsächliches Lieferdatum
			
			GregorianCalendar Auftrag1_Ist = new GregorianCalendar();
			Auftrag1_Ist.set (2008, 10, 12);
			GregorianCalendar Auftrag2_Ist= new GregorianCalendar();
			Auftrag2_Ist.set (2008, 12, 27);
			GregorianCalendar Auftrag3_Ist = new GregorianCalendar();
			Auftrag3_Ist.set (2008, 10, 19);
			GregorianCalendar Auftrag4_Ist = new GregorianCalendar();
			Auftrag4_Ist.set (2008, 7, 12);
			GregorianCalendar Auftrag5_Ist = new GregorianCalendar();
			Auftrag5_Ist.set (2008, 6, 22);
			
			//Umwandeln in das Simple Date Format
			
			java.text.SimpleDateFormat sdf1_Ist = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf2_Ist = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf3_Ist = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf4_Ist = new java.text.SimpleDateFormat("dd.MM.yyyy");
			java.text.SimpleDateFormat sdf5_Ist = new java.text.SimpleDateFormat("dd.MM.yyyy");
			
			//Anlegen der Arraylisten
			
			ArrayList<String> hlist = new ArrayList<String>();
			hlist.add(sdf1_Ist.format(Auftrag1_Ist.getTime()));
			hlist.add(sdf2_Ist.format(Auftrag2_Ist.getTime()));
			hlist.add(sdf3_Ist.format(Auftrag3_Ist.getTime()));
			hlist.add(sdf4_Ist.format(Auftrag4_Ist.getTime()));
			hlist.add(sdf5_Ist.format(Auftrag5_Ist.getTime()));
			
			//Ausgabe der einzelnen Lieferverzüge
			
			// #1
			
			System.out.println("Lieferverzug Auftrag 1 in Tagen:");
			System.out.println("");
			//Subtrahieren von Soll und Ist Lieferdatum
			long time= Auftrag1.getTime().getTime() - Auftrag1_Ist.getTime().getTime();
			//Umrechnen von ms in Tagen
			long day = time/(86400000);
			System.out.println (+day);
			System.out.println("_______________________________________");
			
			// #2
			
			System.out.println("");
			System.out.println("Lieferverzug Auftrag 2 in Tagen:");
			System.out.println("");
			//Subtrahieren von Soll und Ist Lieferdatum
			long time2= Auftrag2.getTime().getTime() - Auftrag2_Ist.getTime().getTime();
			//Umrechnen von ms in Tagen
			long day2 = time2/(86400000);
			System.out.println (+day2);
			System.out.println("_______________________________________");
			
			// #3
			
			System.out.println("");
			System.out.println("Lieferverzug Auftrag 3 in Tagen:");
			System.out.println("");
			//Subtrahieren von Soll und Ist Lieferdatum
			long time3= Auftrag3.getTime().getTime() - Auftrag3_Ist.getTime().getTime();
			//Umrechnen von ms in Tagen
			long day3 = time3/(86400000);
			System.out.println (+day3);
			System.out.println("_______________________________________");
			
			// #4
			
			System.out.println("");
			System.out.println("Lieferverzug Auftrag 4 in Tagen:");
			System.out.println("");
			//Subtrahieren von Soll und Ist Lieferdatum
			long time4= Auftrag4.getTime().getTime() - Auftrag4_Ist.getTime().getTime();
			//Umrechnen von ms in Tagen
			long day4 = time4/(86400000);
			System.out.println (+day4);
			System.out.println("_______________________________________");
			
			// #5
			
			System.out.println("");
			System.out.println("Lieferverzug Auftrag 5 in Tagen:");
			System.out.println("");
			//Subtrahieren von Soll und Ist Lieferdatum
			long time5= Auftrag5.getTime().getTime() - Auftrag5_Ist.getTime().getTime();
			//Umrechnen von ms in Tagen
			long day5 = time5/(86400000);
			System.out.println (+day5);
			System.out.println("_______________________________________");
			
		}
			

	}
```

Kann mir da jemand sagen, wie ich das mittels einer Schleife gebacken bekomme? Ich steh total auf dem Schlauch.

Achja es ist beabsichtigt, dass die Daten bereits im Programm vorgegeben sind und nicht per Tastatureingabe eingelesen werden.

Danke im Voraus für die Hilfe


----------



## Kai008 (17. November 2008)

Habs dir mal ein wenig angepasst. Ist im Anhang.
Uebung1_old.zip enthält es so wie ich denke dass du es haben wolltest, bei Uebung1.zip habe ich noch ein paar Dinge mehr modifiziert, wo ich denke, dass es mir so besser gefällt. Schaut zwar warscheinlich auf dem ersten Blick abschreckend aus, aber ist nicht schwerer zu lesen als das andere.


----------

