【发布时间】:2014-12-17 00:29:59
【问题描述】:
我正在编写一个调用递归辅助方法的方法,以查看两个ArrayLists 的元素是否相等,如果相等则返回true。我意识到,在测试时,即使两个 ArrayLists 具有相同的长度和相同的第一个和最后一个元素但其间的元素不同,该方法也会返回 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);
}
【问题讨论】:
标签: java list recursion arraylist