几乎完成制作强力球游戏,但这是一个语义错误。试图比较两个5个整数的数组并返回匹配数。但是,如果存在重复的数字,则该数字会多次匹配。我需要在匹配后删除这两个数字。
我尝试使用这里建议的arraylist但是arraylist是“Unused import statement”而.remove是“无法解析方法”
import java.util.ArrayList;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (balls[i] == yballs[j]) {
match++;
balls.remove();
remove(yballs, yballs[j]);
}
}
}
public static int[] remove(int[] symbols, int c) {
for (int i = 0; i < symbols.length; i++) {
if (symbols[i] == c) {
int[] copy = new int[symbols.length-1];
System.arraycopy(symbols, 0, copy, 0, i);
System.arraycopy(symbols, i+1, copy, i, symbols.length-i-1);
return copy;
}
}
return symbols;
}
答案 0 :(得分:0)
作为使用ArrayList
您可以填充2个ArrayLists来表示两个球的集合以及用于保存匹配的球:
List<Integer> balls = new ArrayList<Integer>();
List<Integer> yballs = new ArrayList<Integer>();
List<Integer> matches = new ArrayList<Integer>();
balls.add(<ball number>);
...
yballs.add(<ball number>);
...
然后你将遍历每个ArrayList:
for (Integer ballNumber : balls) {
for (Integer yballNumber : yballs) {
if (ballNumber == yballNumber) {
matches.add(ballNumber);
}
}
}
并删除List
的所有重复项:
balls.removeAll(matches);
yballs.removeAll(matches);
如果您不想删除所有这些内容并只删除其中一个副本,则可以执行以下操作:
for (Integer match : matches) {
balls.remove(match);
yballs.remove(match);
}