2013-08-19 1 views
2

Я знаю о том, что я мог бы просто сделать:Можно ли проверить, если два массива не равен

while(Arrays.equals(array1, array2)) 

, а затем просто написать код, необходимый в else заявления.

Есть ли другой способ проверить, не равны ли они?

+2

Это '' Arrays' не arrays'. –

+1

'while' не имеет оператора' else' в java – Piro

ответ

7

Что случилось с

если (! Arrays.equals (array1, array2))

array1.equals(array2) такая же, как array1 == array2, т.е. это тот же массив. И это не то, что ожидают большинство людей.

Arrays.equals(array1, array2) сравнивает содержимое массивов.

+0

Мне очень жаль, что я думал, что это не работает wih Струны, но похоже, что это так спасибо! – nmu

+1

, пока результат является логическим, вы можете выполнить любую логическую операцию на нем! http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html – MrSimpleMind

1

Как насчет

if (!Arrays.equals(array1, array2)) 

Или это то, что вы имеете в виду в вашем примере?

2

Я не думаю, что вы хотите while, но если, так как while не имеет else -clause. Вы можете использовать оператор отрицания (!), чтобы проверить, если массивы не равны, как это:

if(!Arrays.equals(array1, array2)) 
0
if (!Arrays.equals(array1, array2)) 
    // their contents are not equal