tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
340
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    TutorialKing TutorialKing ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    24
    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.
     

  2. #2
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Das ist ja eigentlich eine Denksportaufgabe, nichts, das man weiss oder nicht, deswegen mal unkommentiert folgendes snippet
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
            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}
     
    Denken gefärdet die Gewohnheit

  3. #3
    TutorialKing TutorialKing ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    24
    Ich habe dies nun so gelöst

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    //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.
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 03.02.08, 21:26
  2. Mehrere Panels zur gleichen Zeit scrollen
    Von ronaldo84 im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 04.01.08, 12:13
  3. Antworten: 3
    Letzter Beitrag: 05.04.07, 12:16
  4. Antworten: 6
    Letzter Beitrag: 01.06.06, 09:29
  5. Antworten: 7
    Letzter Beitrag: 01.05.06, 10:53