Я знаю о Arrays.deepEquals(Object [], Object []), но это не работает для примитивных типов (из-за ограничений массивов и autoboxing, см. этот связанный пост).
С учетом этого, является ли это наиболее эффективным подходом?
boolean byteArrayEquals(byte[] a, byte[] b) {
if (a == null && b == null)
return true;
if (a == null || b == null)
return false;
if (a.length != b.length)
return false;
for (int i = 0; i < a.length; i++) {
if (a[i] != b[i])
return false;
}
return true;
}