Zweithöchste Anzahl ArrayList

Also ich hab diesen code bisher:

        int secondLargest = list.get(0);
        int largest = list.get(0);
        for (int i = 0; i < list.size(); i++)
        {
            if(list.get(i) > largest)
            {
                secondLargest = largest;
                largest = list.get(i);

                if(list.get(i) > secondLargest && list.get(i) != largest)
                {
                    secondLargest = list.get(i);
                }
            }
        }

        System.out.print("Second biggest number ");
        return secondLargest;       

Das problem ist, dass wenn ich diesen code verwenden
(die Liste ist:)

    list2.add(1);
    list2.add(2);
    list2.add(10);
    list2.add(9);
    list2.add(8);
    list2.add(7);

die "Suche" für die zweite höchste Zahl hält an 2, denn 10 ist die höchste Zahl. Wie kann ich dieses Problem beheben?

  • Ich denke, der einfachste Weg, dies zu tun ist zu Sortieren das array und nehmen das zweite element (je nach Bestellung, natürlich, so bin ich der Annahme, es wird in absteigender Reihenfolge sortiert). Darüber hinaus SortedSet können verwendet werden, wenn Sie können Gebrauch machen von den Collections-framework.
InformationsquelleAutor newbieCoder | 2015-10-07
Schreibe einen Kommentar