删除数组索引中的int for java powerball game

时间:2015-01-14 18:26:07

标签: java arrays

几乎完成制作强力球游戏,但这是一个语义错误。试图比较两个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;
}

1 个答案:

答案 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);
}