2 mit Arrays bestückte LinkedLists durchsuchen/vergleichen

rotten

Neues Mitglied
Guten Abend zusammen. Wie mir die Foren-Suche zeigte, ist das Lottothema hier ja keine Seltenheit. 😉
Ich habe folgendes Problem:
In einer LinkedList sind int-Arrays mit den Ziehungen gespeichert (6 int-Werte).
Das gleiche habe ich für die abgegebenen Tipps gemacht.
Jetzt möchte ich eine Klasse "Statistik" schreiben, die mir die Häufigkeit der einzelnen Lottozahlen (1-49) und das Auftreten von z.B. 6 Richtigen angibt. Könnt ihr mir helfen?
 
Du musst über die LinkedList inkl. dessen Inhalt iterieren und die Zahlen zählen. In der Theorie also zwei Verschachtelte Schleifen, eine für die LinkedList, eine für das Array. Für das Iterieren über die LinkedList bietet sich das Iterator Interface an, das bei Collections standardmäßig bei Java mitgeliefert wird. Das ist nämlich genau dafür gedacht und sollte man defintiv kennen, wenn man mit Collections arbeitet (im Internet findest du viele viele Beispiele wenn du mit der Verwendung nicht zurecht kommst).

ListIterator: https://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html
Iterator: https://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html
 
Zuletzt bearbeitet:
Vielen Dank! Welche Vorteile bieteten die Iterator Methoden denn gegenüber von z.B. for-Schleifen? Durch deinen Vorschlag verschachtelte Schleifen zu verwenden, habe ich mir folgendes überlegt:
Java:
for (int i = 0; i < ziehungsspeicher.size(); i++) {  //Ziehungsspeicher ist die LinkedList

	for (int a = 0; a < 6; a++) {
		System.out.println(ziehungsspeicher.get(i).ziehung[a]); // Ziehung ist das Array in der LinkedList
        }
}

Jetzt komme ich also an die einzelnen int-Werte vom Ziehungsspeicher. Ich würde diese nun in ein neues Array übertragen um herauszufinden wie oft z.B. die 48 gezogen wurde.
Wie aber stelle ich den Vergleich mit dem Tippspeicher an? Schließlich spielt ja die reinfolge der Zahlen in den einzelnen Tipps beziehungsweise Ziehungen keine Rolle.
Vielen Dank für die Mühe:
 
Zuletzt bearbeitet:
Schließlich spielt ja die reinfolge der Zahlen in den einzelnen Tipps beziehungsweise Ziehungen keine Rolle.
Dann: Erst mal jede Ziehung und jeden Tipp sortieren - vielleicht ist's später unnötig, aber manch ein "Vergleich" lässt sich verkürzen, wenn garantiert ist, dass Ziehung und Tipp beide sortiert sind.

Für das Zählen, welche Kugel wie oft gezogen wurde:
Java:
int ar_kugel[50] ; // [0] ignorieren wir und verwenden [1..49]
for(int iii=0;iii<50;iii++) ar_kugel[iii]=0 ; // end for
// [...] dann in der Schleife:
int zahl = ziehungsspeicher.get(i).ziehung[a] ;
ar_kugel[ zahl ]++ ;

Für das Vergleichen von Tipps mit den jew. Ziehungen seh' ich nichts, das einem folgendes ersparen würde:
Code:
// for_each( ziehung ) {
//   for_each( tipp ) {
//     anzahl_richtige = ziehung.vergleiche( tipp );
//     tu_was_auch_immer_bei_3_4_5_6_richtigen_getan_werden_soll
//   }
// }
 

Zurück
Oben