在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/