Mehrere Variablen auf den gleichen Inhalt vergleichen

TutorialKing

Mitglied
Hallo zusammen,

ich suche eine effektive Möglichkeit um 5 int Variablen auf den gleichen Inhalt zu vergleichen. Ich möchte jetzt nicht unbedingt zig If Abfragen haben.

Inhalt der Variablen 1-6
int variable1=0, variable2=0, variable3=0, variable4=0, variable5=0

Achtung es können z.b. variable1 = 2 und variable2=2 gleich sein und die restlichen enthalten den Wert 5. Ich möchte immer die rausfinden wo 3 bzw. 4Werte gleich sind.
 
Das ist ja eigentlich eine Denksportaufgabe, nichts, das man weiss oder nicht, deswegen mal unkommentiert folgendes snippet :eek:
Code:
		int[] ints = new int[] { 4, 2, 4, 6, 1, 4 };
		HashMap hm = new HashMap();
		for (int i = 0; i < ints.length; i++) {
			if (null != hm.get(ints[i])) {
				hm.put(ints[i], ((Integer) hm.get(ints[i])) + 1);
			} else {
				hm.put(ints[i], new Integer(1));
			}
		}
		System.out.println(hm);
Output: {6=1, 4=3, 2=1, 1=1}
 
Ich habe dies nun so gelöst

Code:
//mind. 3 gleiche Werte
private int vergleich()
{
    //Summe aller Werte werden berücksichtigt
    int punkte=0;
    int arr_wert[] = new int[7];
    boolean valid=false;
    for (int i=0; i<7; i++)
    {
        arr_wert[i]=0;
    }
    arr_wert[wert1] += 1;
    arr_wert[wert2] += 1;
    arr_wert[wert3] += 1;
    arr_wert[wert4] += 1;
    arr_wert[wert5] += 1;
    
    for (int i=1; i<7; i++)
    {
      if (arr_wert[i]>2)
       {
            valid = true;
       }
    }
    if (valid==true){
        for (int i=1; i<7; i++)
        {
            punkte = punkte+arr_wert[i]*i;
        }    
    }
    return punkte;
}

Falls 3 oder mehr gleiche Werte existieren, werden die "Punkte" addiert und zurückgeliefert. Falls es weniger als 3 gleiche Werte gibt, liefert die Methode 0 zurück.
 
Zurück