Самая быстрая реализация метода, который преобразует логические массивы в целые числа в Java - PullRequest
2 голосов
/ 26 июня 2019

Есть ли способ улучшить этот метод с точки зрения скорости?:

static int booleanArrayToInt(boolean[] array) {
    int x = 0;
    int i = 0;
    for (boolean b : array) {
        i++;
        if (b) {
            x = 1;
            break;
        }
    }
    for (int j = i; j < array.length; j++) {
        if (array[j]) x = (x << 1) + 1;
        else x = x << 1;
    }
    return x;
}

1 Ответ

4 голосов
/ 26 июня 2019

Вот, пожалуйста.

      boolean[] bools =
            { true, true, false, false, true, true, false, false, true
            };
        public static int binaryToInt(boolean[] bools) {
          int x = 0;
          for (boolean b : bools) {
             x <<= 1;
             x |= b ? 1
               : 0;
          }
          return x;
        }

...