下面是我的代码,在这里我想比较两个数组元素并将相应的元素添加到新数组(foundArray
),而未找到的元素添加到其他数组(notFoundArray
)。
public static void main(String[] args) {
Integer[] originalArray = { 12, 54, 19, 20, 44, 32, 14, 63, 57, 28 };
Integer[] keyArray = { 20, 44, 50, 62, 23, 28, 19, 57, 60, 99 };
List<Integer> foundArray = new ArrayList<Integer>();
List<Integer> notFoundArray = new ArrayList<Integer>();
for (int i = 0; i <= originalArray.length; i++) {
for (int j = 0; j <= keyArray.length; j++) {
if (originalArray[i] == keyArray[j]) {
System.out.println("Found");
foundArray.add(originalArray[i]);
} else if (originalArray[i] != keyArray[j]) {
System.out.println("Not Found");
notFoundArray.add(originalArray[i]);
}
}
}
}
这不起作用,给了我
ArrayIndexOutOfBoundsException
并且只执行else语句。我已经用谷歌搜索了它,但没有正确的答案。感谢您的帮助。谢谢!
最佳答案
ann数组的最后一个索引为length-1
,因为第一个索引为零,因此您的代码必须为
for (int i = 0; i < originalArray.length; i++) {
for (int j = 0; j < keyArray.length; j++) {