Alle Array-Elemente auf einmal überprüfen?

HelloJava

Mitglied
Hallo, gibt es eine Möglichkeit mit if alle Elemente eines Arrays auf einmal zu überprüfen ohne eine for-Schleife benutzen zu müssen?

Zum Beispiel so:


if ( array [ n +1 ] == 0 ) {

...alle Elemente haben den Wert "0"!

}
 


Was hast du gegen for-Schleifen? =)

Edit:

Ok, du könntest [c]Arrays.binarySearch(int [] a, int key)[/c] benutzen. Die Methode liefert die -1 wenn sich kein Key im übergeben Array befindet.
 
Zuletzt bearbeitet:
Ok, du könntest [c]Arrays.binarySearch(int [] a, int key)[/c] benutzen. Die Methode liefert die -1 wenn sich kein Key im übergeben Array befindet.

Damit stellst du aber nicht sicher dass alle Elemente dem Key entsprechen 🙂
------
"Nö" stimmt schon, aber mit ein paar Tricks kann man da immer etwas tricksen, kommt allerdings auch auf das Array an.
Wenn du beispielsweise ein Integer-Array anstelle von einem int Array (also keine primitiven) benutzt, könntest du
Java:
Collections.frequency(Arrays.asList(array), 0) == array.length
testen.

Wieso verwendest du nicht lieber direkt etwas aus dem Collection Framework?
 
Meine Absicht war folgende:

boolean alleElementeSindNull ;

if ( array [ n +1 ] == 0 ) {

alleElementeSindNull = true ;

}
else {

alleElementaSindNull = false ;

}

Wenn ich das in eine for-Schleife einsetze und das letzte Element des Arrays den Wert "0" hat, dann wird die Variable "alleElementaSindNull" auf true gesetzt, auch wenn alle anderen Elemente nicht "0" sind.

Beispiel:


boolean alleElementeSindNull ;

for ( int i = 0 ; i <= n ; i++ ) {

if ( array [ i ] == 0 ) {

alleElementeSindNull = true ;

}
else {

alleElementaSindNull = false ;

}
}
 
Ne, das geht so nicht. Du musst in der Schleife nur 1x den Wert setzen und zwar wenn das Element !=0 ist:
Java:
boolean allNull = true;
for (int i=0;i<a.length;i++) {
  if (a[i]!=0) {
    allNull = false;
  }
}

Was ist bei dir n? Wenn es Länge des Array ist, dann kriegst du eine IndexOutOfBoundsException
 
Java:
boolean alleElementeSindNull = true;

for (int i = 0 ; i < array.length ; i++) {
    if (array[i] != 0 ) {
        alleElementeSindNull = false;
        break;
    }
}
System.out.println("Alle elemente sind null: " + alleElementeSindNull");
 
Wenn deine Booleans begrenzt sind koenntet du auch eine Bit Operationen verwenden.

Java:
		int flag = 0;
		System.out.println(flag);
		System.out.println("NO flags set: " + (flag==0));
		flag |= 1 << 3;
		System.out.println("set flag 3: " + flag);
		flag |= 1 << 4;
		System.out.println("set flag 4: " + flag);

		System.out.println("check flag 4: " + ((flag & 1 << 4) == 1 << 4));
		System.out.println("check flag 5: " + ((flag & 1 << 5) == 1 << 5));
		System.out.println("NO flags set: " + (flag==0));
 

Zurück
Oben