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

回到顶部