String.equals(), чтобы изменить с побитовым И на двоичных числах

В Java, работающем с двоичными строками (например, "00010010", нули добавляются в начале при создании этих двоичных строк для целей моей программы). У меня есть функция

private static boolean isJinSuperSets(String J, List<String> superSets) {

    for (String superJ : superSets)
        if (superJ.equals(J)) return true;

    return false;
}

который проверяет, содержится ли двоичная строка J в списке двоичных строк superSets.

я использую equals() на объекте String, но я хотел бы ускорить этот код путем преобразования двоичных строк в двоичные числа и выполнения побитовой операции И, чтобы увидеть, равны ли они.

Не могли бы вы дать мне несколько советов, как этого добиться?

1 ответ

Решение

Здесь для int:

for (String superJ : superSets)
        return Integer.valueOf(superJ,2) == Integer.valueOf(J,2);
}

Вы должны проверить с помощью тестов (будьте осторожны, первый раз всегда медленнее) для скорости.

Лучший способ оптимизировать, если J используется более одного раза: где-нибудь использовать J2 как Integer и тестировать его.

Другие вопросы по тегам