在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()
但我希望通过将二进制字符串转换为二进制数并执行按位运算来加速此代码,并查看它们是否相等。
你能否告诉我一些如何实现这一目标的技巧?
答案 0 :(得分:1)
这里是int:
for (String superJ : superSets)
return Integer.valueOf(superJ,2) == Integer.valueOf(J,2);
}
你必须用基准测试(注意第一次总是慢一点)才能获得速度。
如果J不止一次使用,优化的最佳方法是:将J2作为Integer放在某处并对其进行测试。