# Arrays aus Vectoren holen



## gailo (21. Okt 2009)

Hallo Leute,

Ich hab ein tolles programm zu schreiben welches Lottokugelziehungen breechnet Tipps annimt und das ganze als krönenden Abschluss als Statistik auswerted. Bisher hat alles gut geklappt bis zu dem punkt bis ich vergleichen muss um zu zeigen wieviele 6er 5er 4er etc es gibt.
Kommentiert hab ich noch nicht ich hoffe ihr könnt was mit dem Gedankengang anfangen. 
Mein Problem liegt darin das ich in einem vector ziehungen speichere und diese ziehungen vom Typ int array sind und ich die irgendwie nicht wieder aus dem vector rausbekomme bzw nicht vergleichen kann

[JAVA=42]	public int[] findeUebereinstimmung(Vector<Ziehung> speicher, Vector<Ziehung> tipp){
		int[] speicherArray = new int[6];
		int[] tippArray = new int[6];
		int[] anzahl = new int[7];
		int zaehler;

		for(int i = 0; i <= speicher.size(); i++){
			for(int j=0; j <= tipp.size(); j++){


				speicherArray = (int[])speicher.get(i).getZiehung();  //mit und ohne casts ist das gleiche resultat
				tippArray = (int[])tipp.get(j).getZiehung();



				zaehler = 0;
				for(int k = 0;k < speicherArray.length; k++){

					for(int l = 0; l < tippArray.length; l++){
						if(speicherArray[k] == tippArray[l])zaehler++;
					}

				}
				anzahl[zaehler]= anzahl[zaehler]+1;
			}	
		}
		return anzahl;
	}[/code]

ich bekomme immer eine ArrayIndexOutOfBoundsException und versteh nicht so recht warum.

zum getZiehung
[JAVA=42]public class Ziehung {

	int[] ziehung = new int[6];


	public Ziehung(int[] ziehung) {
		super();
		this.ziehung = ziehung;
	}

	public int[] getZiehung() {
		return ziehung;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append(Arrays.toString(ziehung));
		return builder.toString();
	}


}[/code]

Ich hoffe auf hilfe nicht auf komplettlösungen da das programm zu gross wäre um alles einzeln zu posten.


----------



## Marco13 (21. Okt 2009)

In welcher Zeile fliegt die Exception? Wie groß ist der Array dort? Welcher Index wird verwedet? (Mit System.out.println direkt vor der Zeile ausgeben lassen!)


----------



## gailo (21. Okt 2009)

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 3
	at java.util.Vector.get(Unknown Source)
	at Statistik.findeUebereinstimmung(Statistik.java:21)
	at LottoMain.main(LottoMain.java:107)

die exception fliegt in 
tippArray = (int[])tipp.get(j).getZiehung();

und die range 3 ist die grösse des tipp vektors


----------



## javimka (21. Okt 2009)

Ich glaube, das Problem ist

```
for(int j=0; j <= tipp.size(); j++){
```
j geht bis nach j = 3. Deine Array hat zwar Grösse 3, doch das erste Element ist an Stelle 0. Das heisst, das dritte und letzte Element ist an Stelle 2.

Ersetze es durch

```
for(int j=0; j < tipp.size(); j++){
```


----------



## gailo (21. Okt 2009)

Omg jetzt nochmal das für die erste verändert und es geeeeeeeeeeeeeeeeeeeehhhhhht

danke


----------

