# Array vergleich mit 2 for schleifen



## loadbrain (26. Jun 2007)

Hallo,
gesetzt den Fall ich habe ein Array mit 3 Elementen. Jetzt mcöhte ich schauen, ob eines der Elemente gleich ist.
Dabei habe ich gedacht, ich gehe durch den Array mit einer for schleife, habe also das erste Element, dann vergleiche ich alle folgenden damit, usw also
Element 0 mit Element 1
Element 0 mit Element 2
Element 1 mit Element 2

wenn da nix gleich war (ist übrigens ein String) dann aus.

Aber wie krieg ich das hin?

Habe schon folgendes probiert:


```
for (int i= 0; i < meinArray.length; i++)
            {
                for (int j = i; j < meinArray.length ; ++j)
                {
```

klappt nicht.
j sollte ja immer i+1 sein. Irgendwie sitze ich auf der Leitung.
Oder geht das gar total anders?


----------



## Der_Dude (26. Jun 2007)

Wichtig ist die Stelle a!=b in der If - Anweisung.


```
for(int a=0 ; a<meinArray.length ; a++){
			for(int b=0 ; b<meinArray.length ; b++){
				if(meinArray[a].equals(meinArray[b]) && a!=b){
					System.out.println("Dopplung");
				}
			}
		}
```


mfg Kürby


----------



## loadbrain (26. Jun 2007)

Vielen Dank, habe es mittlerweile auch geschafft!!


```
for (int i= 0; i < meinArray.length; i++)
            {
                for (j = i+1; j < meinArray.length ; j++)
                {
                    if (meinArray[i].getName().equals(meinArray[j].getName()))
                    {
                        
                        System.out.println("gleich");
                    }
                }
                
            }
```

Scheint auf jeden Fall zu gehen soweit ich bis jetzt sehen kann...


----------



## Der_Dude (27. Jun 2007)

ja schon aber wenn das wirklich ein String Array ist bei dir wozu dient dann das meinArray_.getName() ???? und wenn das Array wirklich 3 Elemente beinhaltet und alle 3 Unterschiedlich sind kommt bei deiner Lösung wenn da überhaupt was kommt 3 mal "gleich"._


----------



## Marco13 (27. Jun 2007)

@Der_Dude: Hast du das mal getestet? Abgesehen davon: Bei deiner Lösung werden doppelt so viele Vergleiche gemacht, wie nötig: x[a].equals(x*) gilt gdw. x.equals(x[a]) ...*


----------



## loadbrain (28. Jun 2007)

@Der_Dude:
Es sind eigentlich die Bezeichnungen von JLabels. Und ja es klappt. Es kann sein, dass es keine 2 oder sogar mehr gleiche Elemente gibt. Da fehlt einiges an Infos, ist ein kleines spiel, können doppellte karten drin sein, muss aber nicht, von daher ist das schon ok so.
Ich hatte die Lösung auch von Anfang an, so wie ich sie gepostet habe, allerdings habe ich damals einen anderen Denkfehler gedacht und meinte es gehe nicht...
Ist also alles ok, Danke für die Nachfrage.

Ralf


----------



## Der_Dude (28. Jun 2007)

@Marco13
Dein Einwand ist richtig und nein ich hab es nicht getestet.

naja dann sag ich mal gelöst ... *gg*

mfg Dude


----------

