Java XOR над двумя массивами
Мне нужно применить xor над двумя массивами, например, скажем, что у меня есть:
array_1: 1 0 1 0 1 1
array_2: 1 0 0 1 0 1
Я хотел бы иметь функцию, которая принимает два массива и возвращает массив, применяющий XOR,
поэтому в этом случае я хотел бы вернуть эту функцию:
returned_array: 0 0 1 1 1 0
Пожалуйста, помогите мне с алгоритмом.. Спасибо!
Ответы
Ответ 1
Если вы храните эти числа в массивах байтов, используйте это прямое решение:
byte[] array_1 = new byte[] { 1, 0, 1, 0, 1, 1 };
byte[] array_2 = new byte[] { 1, 0, 0, 1, 0, 1 };
byte[] array_3 = new byte[6];
int i = 0;
for (byte b : array_1)
array_3[i] = b ^ array_2[i++];
Выходной массив:
0 0 1 1 1 0
Ответ 2
Будет ли это хорошим решением? (Я написал это благодаря тому, что вы мне дали)
if(array1.length==array2.length){
for(int i=0;i<array1.length;i++){
output.add(logicalXOR(array1.get(i),array2.get(i)))
}
}
Разумеется, array1,2 и output будут arrayLists