Sortiere eine ArrayList nach primitivem booleschen Typ

8

Ich möchte meine ArrayList mit einem booleschen Typ sortieren. Grundsätzlich möchte ich Einträge mit true zuerst anzeigen. Hier ist mein Code unten:

Abc.java

%Vor%

Haupt.java

%Vor%

Bestellung vor dem Sortieren:      wahr      wahr      wahr      falsch      falsch      falsch      falsch      wahr      falsch      falsch

Bestellung nach dem Sortieren: falsch  falsch  wahr  wahr  wahr  wahr  falsch  falsch  falsch  falsch

    
stud91 17.01.2015, 17:44
quelle

6 Antworten

23

Ein anderer Weg ist:

%Vor%     
Danilo 17.01.2015 17:59
quelle
10

In diesem Fall ist eine der einfachsten Lösungen, boolesche Werte in Ganzzahlen umzuwandeln, wobei false ist 0 und true ist 1 . Dann gib den Unterschied zwischen dem zweiten und dem ersten zurück.

Also:

%Vor%

sollte es tun.

    
soulcheck 17.01.2015 17:50
quelle
4

Ich möchte, dass die Elemente mit true -Wert zuerst angezeigt werden. Meine Lösung wäre:

%Vor%     
stud91 17.01.2015 17:51
quelle
3

Ein einfacher Vorschlag wäre, das Objekt Boolean anstelle von boolean zu verwenden und Collections.sort zu verwenden.

Sie müssen jedoch wissen, dass false vor true steht, weil true als 1 und false als 0 dargestellt werden. Aber dann könnten Sie einfach Ihren Algorithmus ändern und in umgekehrter Reihenfolge zugreifen.

Bearbeiten : Wie in der Seelenprüfung angegeben, können Sie Collections.reverseOrder verwenden, um die vom Vergleicher auferlegte Reihenfolge wiederherzustellen.

    
user2683146 17.01.2015 17:49
quelle
1

Java 8:

%Vor%     
bphilipnyc 27.07.2016 23:34
quelle
1

Es ist auch so möglich.

%Vor%     
davidddp 14.12.2017 09:25
quelle