【发布时间】:2012-11-22 12:53:35
【问题描述】:
node_marked_array.add(strings[0]);
for (int i = 0; i < strings.length; i++) {
for (int a = 0; a < strings2.length; a = a + 2) {
if (node_marked_array.get(i).equals(strings2[a])) {
if (!node_marked_array.get(i).equals(strings2[a + 1])) {
// System.out.println("marked node: " + node_marked_array.get(i) + "=" + strings2[a] + ", added node " + strings2[a+1]);
node_marked_array.add(strings2[a + 1]);
}
}
}
}
我有一个名为 strings2 的数组,每个元素都是:
1, 2, 1, 3, 2, 3, 2, 4, 3, 2, 5, 5, 2,
我的代码应该通过数组,如果它与数组中的任何元素匹配,例如strings:{1,2,3,4,5} 与每个偶数元素的strings2。它检查上面数组的i+1 元素以查看该元素是否已添加到标记的数组中,如果没有,则添加它。但是,即使使用
if (!node_marked_array.get(i).equals(strings2[a + 1]))
输出:
1 2 3 3 4 2 5 2 5 5
【问题讨论】:
-
添加一些
System.out.println()语句,看看你的代码哪里出错了。 -
除非这是一个赋值,一个简单的方法就是将它转换为一个集合: Set
mySet = new HashSet (Arrays.asList(someArray));
标签: java arrays duplicates