【发布时间】:2016-01-22 01:05:08
【问题描述】:
我仍然是 Java 的初学者,如果有任何帮助,我将不胜感激。 我有两个大小不同的数组,我想比较它们的元素。返回值是一个具有更大数组长度的 int[]。 int[] 应该包含 1 和 0。 1 表示元素相同,0 表示不同。当然 int[] 的其余部分应该为零,因为它要长得多。 不幸的是,我收到了这个错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
我的方法有什么问题?
public static int[] createVector(String[] longArr, String[] shortArr) {
int l = Arrays.toString(longArr).length();
int s = Arrays.toString(shortArr).length();
int[] b = new int[l];
for (int i = 0; i < l; i++) {
b[i] = 0;
for (int j = 0; j < s; j++) {
if (longArr[i].equals(shortArr[j])) {
b[i] = 1;
}
}
}
return b;
}
【问题讨论】:
-
您只需要一个循环,而不是两个。它应该从 0 到较短的长度,并在必要时填写“true”。 “tail”将保持默认的“false”。
-
是的,一个循环。但仍然无法理解它。与 for (int i = 0; i
-
为什么我需要一个循环?我需要在这个例子中得到:这两个数组 {bob, charlie, john, lee, bruce, jack} 和 {john, jack} 的布尔 int[]。我的结果应该是 {0,0,1,0,0,1}。这不适用于一个循环。
-
好吧,我看错了问题,我以为你想比较相同位置的相同条目。你是对的,如果你想测试做集合交集,你需要两个循环。