Prüfe, ob alle Byte-Arrays in 0xff sind

8

Gibt es eine einfache Möglichkeit, ohne Schleifen zu überprüfen, ob ein Byte-Array in Java alle 0xFF als Werte hat?

Beispiel

%Vor%     
jantox 14.05.2012, 08:00
quelle

3 Antworten

3

Wenn Sie Schleifen nicht mögen, verwenden Sie Rekursion:)

%Vor%     
DRCB 14.05.2012, 08:24
quelle
4

Es gibt keine Möglichkeit, dies in einer Sprache ohne Schleifen zu tun (entweder explizit oder rekursiv). Selbst wenn Ihre CPU eine spezielle Anweisung hat, einen Speicherbereich nach einem Muster zu durchsuchen, wird es intern eine Schleife durchlaufen. Deine Frage ergibt also keinen Sinn.

Wenn Sie nach einem effizienten Weg fragen, dies zu tun, gibt es viele Möglichkeiten:

  • Wenn Ihre Arrays immer die gleiche Länge haben, können Sie eine Konstante einrichten und Arrays.equals() verwenden. Wenn Sie mehrere verschiedene Längen, aber nur eine geringe Anzahl verschiedener Längen haben, können Sie mehrere Konstanten erstellen.

  • Sie können das Array sortieren und den ersten und letzten Wert überprüfen. Wenn sie identisch sind, müssen alle Werte zwischen -1 ebenfalls sein.

  • Sie können den Check in eine Methode verschieben, was bedeutet, dass die "Check-Schleife" den Code an einer wichtigen Stelle nicht stört.

  • Sie können JNI verwenden, um auf Assemblercode zuzugreifen, der wiederum spezielle Anweisungen verwendet.

  • Andere Sprachen bieten eine bessere Unterstützung für solche Dinge. In Groovy können Sie b.size() == b.count { it == -1 }

  • verwenden
Aaron Digulla 14.05.2012 08:30
quelle
1

verrückte Idee, können Sie es mit String-Matching tun

%Vor%     
isvforall 14.05.2012 09:00
quelle

Tags und Links