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 и тестировать его.