Java .contains(T)
просто выполняет проверку на равенство аргумента. Массив, однако, не равен другому массиву, содержащему те же значения, потому что все значения не проверяются, и сравнение выполняется по их указателям.
Поскольку у вас уже есть два byte[]
, ужасный, но функциональный способ может состоять в том, чтобы просто ... перебирать список и использовать java.util.Arrays.equals()
, который творит чудеса на примитивных массивах.
List<byte[]> listOFByteArrays = getListOfByteArrays();
byte[] newByteArray = getNewByteArray();
boolean flag = false;
for(byte[] b : listOFByteArrays) {
if(Arrays.equals(b,newByteArray)) {
flag = true;
break;
}
}
if (!flag){
// do stuff
}