Вам нужно изменить свой код следующим образом:
public boolean equals(){
if (array1.size() != array.size()) return false;
for(int i = 0; i < array1.size(); i++){
if(!array1.get(i).equals(array.get(i))){
return false;
}
}
return true;
}
Во-первых, вы должны начать с test
, равным true, и вернуть false, если вы найдете что-то, что не равно, потому чтоэто ясно показывает, что ArrayLists не равны.На самом деле вам вообще не нужна переменная test
, поэтому я ее убрал.Просто верните false, если вы найдете что-то не равное.Если вы не найдете что-то не равное, оно никогда не вернет false и просто вернет true в конце.Во-вторых, вы должны использовать метод equals()
, потому что ArrayLists используют класс Integer
, а не примитив int
, поэтому ==
проверит, являются ли они одним и тем же объектом, а не тем же числом.Наконец, для сравнения массивов разных размеров вы должны сравнить их размер и вернуть false, если они не одинакового размера, поскольку нет никакого способа, которым они могут быть равны.