比较两个字节数组?(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
