java - String.equals() 通过按位 AND 对二进制数进行更改

标签 java binary equals bitwise-and

在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 列表中。

我在 String 对象上使用 equals() ,但我想通过将二进制字符串转换为二进制数并执行按位运算 AND 来查看它们是否相等来加速此代码。

您能给我一些实现这一目标的技巧吗?

最佳答案

此处为整数:

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

您必须使用基准测试(注意第一次总是较慢)速度。

优化 J 多次使用的最佳方法:将 J2 作为 Integer 放在某处并对其进行测试。

关于java - String.equals() 通过按位 AND 对二进制数进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11490647/

相关文章:

java - 无法解析 localTime 中的可选微秒

python - 将包含 0's and 1' 的列表转换为位数组(使用位数组模块)并输出到二进制文件错误

.net - .NET 类的类似深层结构的 Equals()?

java - java中如何使两个对象相等

Windows 批处理检查变量是否以特定字符串开头、结尾并包含特定字符串

java - 在 JBoss EAP 6.2.0 中通过 JNDI 访问 HornetQ 连接工厂(本地)

java - JSP 文件中的 doGet 有效,但 doPost 无效

javascript - 设置数字中的特定位

c - 使用 gcc mingw 嵌入二进制 blob

java - 如何找到字符串和两个点之间的东西?