我正在编写一个方法,调用递归辅助方法,基本上是查看两个ArrayList
的元素是否相等,如果相等则返回true。我意识到,在测试时,即使两个ArrayList
具有相同的长度和相同的第一个和最后一个元素,但在中间有不同的元素,该方法仍会返回true,这不是我想要的结果。我认为该方法在其他方面可以正常工作。有什么建议或提示可以帮我解决这个问题吗?
public static boolean isEqual(ArrayList<T> list1,
ArrayList<T> list2) {
return isEqual(list1,list2,0);
}
private static boolean isEqual(ArrayList<T> list1,
ArrayList<T> list2, int n) {
if (n==0 && list1.size()==0 && list1.size() == list2.size())
return true;
else if (n>=list1.size() || n>=list2.size())
return false;
if (n<list1.size() && list1.size() == list2.size()) {
if (list1.get(n).equals((list2.get(n))))
return true;
else
return false;
}
return isEqual(list1, list2, n + 1);
}