Java Boolean Arrays?

2 Antworten

Ave!

Du könntest das Array mit einer for-Schleife durchgehen und abgleichen.

Dazu erstellst du eine Überprüfungsvariable, die den Wert "false" hat.

Wenn ein Wert im Durchlauf "true" ist, wird die Überprüfungsvariable ebenfalls auf "true" gestellt.

Nach der for-Schleife wird nun geprüft ob die Überprüfungsvariable "false" ist.

Grüßchen.

alfredo153  21.05.2021, 20:31

Etwas sinnvoller ist es, die Schleife sofort abzubrechen, wenn ein Wert true ist - ab dann weiß man schon, dass die Bedingung nicht erfüllt ist.

0
MagisterSamael  21.05.2021, 20:40
@alfredo153

Ja, wäre natürlich performanter, aber das Konzept sollte erstmal vermittelt werden.

0

Wenn es vom Typ boolean[] ist, dann wird es wohl nicht viel einfacher als mit so einer Hilfsmethode:

boolean allFalse(boolean[] arr) {
   for(boolean b: arr) {
      if(b) return false;
   }
   return true;
}
Timpanyy  21.05.2021, 20:20

Bitte unnötige Negationen vermeiden

0
Timpanyy  21.05.2021, 20:24

Dein Code war gar nicht so falsch, ohne Negation als Hilfsmethode hätte alles gepasst.

0
alfredo153  21.05.2021, 20:27
@Timpanyy

Abgesehen vom Logikdreher: Der Code hätte nur mit einem Array von Boolean (statt primitiven boolean) funktioniert, was der FS wohl nicht hat.

0
Timpanyy  21.05.2021, 22:05
@alfredo153

Nicht ganz; mit Arrays.asList() konvertierst du ein normales Array zu einer Liste. Funktioniert also mit dem primitiven Boolean und nicht der Wrapper Klasse

0
alfredo153  21.05.2021, 22:20
@Timpanyy

Arrays.asList() ist letztlich nur ein dünner Wrapper über dem Array - und damit kann es kein automatisches Boxing der Werte geben, denn das zugrundeliegende Array bleibt weiterhin vom Typ boolean[].

Machst du also Arrays.asList() über ein boolean[], ist der resultierende Typ eine List<boolean[]> (mit einem einzigen Element), nicht etwa eine List<Boolean>.

0