比较两个字节数组?(Java)
我有一个带有〜已知二进制序列的字节数组。我需要确认二进制序列是应该的。.equals
除之外==
,我还尝试了其他方法,但均无济于事。
byte[] array = new BigInteger("1111000011110001", 2).toByteArray();if (new BigInteger("1111000011110001", 2).toByteArray() == array){
System.out.println("the same");
} else {
System.out.println("different'");
}
回答:
在您的示例中,您具有:
if (new BigInteger("1111000011110001", 2).toByteArray() == array)
在处理对象时,==
java中会比较 参考值
。您正在检查对by返回的数组的引用toByteArray()
是否与所保存的引用相同array
,这当然永远不会正确。此外,数组类不会覆盖,.equals()
因此其行为Object.equals()
仅是比较参考值。
为了比较两个数组的 内容
,Arrays类提供了静态数组比较方法。
byte[] array = new BigInteger("1111000011110001", 2).toByteArray();byte[] secondArray = new BigInteger("1111000011110001", 2).toByteArray();
if (Arrays.equals(array, secondArray))
{
System.out.println("Yup, they're the same!");
}
以上是 比较两个字节数组?(Java) 的全部内容, 来源链接: utcz.com/qa/421059.html