几乎完成了强力球游戏的制作,但存在语义错误。 尝试比较两个 5 个整数的数组并返回匹配数。 但是,如果存在重复号码,则该号码会多次匹配。 我需要在匹配后删除两个数字。

我尝试按照此处的建议使用 arraylist,但 arraylist 是“未使用的导入语句”,而 .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 已采纳

作为使用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);
}

  ask by Tintinabulator Zea translate from so

未解决问题?本站智能推荐:

2回复

是否可以在Java中删除数组的索引?

我知道以下类似的事情是可能的: 从数组中删除字符(通过替换空白空间)
1回复

如何删除数组java中的int的所有重复项

我需要创建一种方法来删除数组中所有出现的整数。 删除整数后,需要向下移动整个列表,以便在空白处填充下一个整数。 当前,此方法仅删除1次出现的给定整数。
2回复

是否可以删除数组中的对象而不是其索引? (Java)

当我尝试自我回答这个问题时,我只能找到其他有关从数组中删除项目的问题,以便将删除的对象之后的项目在索引中下移1。 在下面的代码中,我有两个数组保存类SomeObject(具有名称属性):SomeObject_ONE和SomeObject_TWO。 下面,我在第一个数组中放置一个对象“
7回复

删除数组中的重复项,结尾处填充为零

我有一个任务,要删除数组中的重复项,“删除”意味着将元素向下移动1 ,并使最后一个元素等于0 ,所以如果我有int[] array = {1, 1, 2, 2, 3, 2}; 输出应为: 1, 2, 3, 0, 0, 0我尝试了以下逻辑: 但这是行不通的。有人知道正确的解决方案吗?
5回复

如何从索引处的数组中删除项目?

虐待尝试澄清。 我有: 那应该打印出来: 5, 6, 7, 9, 10. 问题是删除方法,我应该怎么写。 我有: 公共类removeArray { } 仍然没有? 更新:我得到打印5 6 7 9 10 10 ,我如何删除最后一个值?
3回复

Java删除数组中的冗余项

对于此特定问题,我尝试删除已排序数组中的多余元素,并在数组末尾用0替换它们。 例如,如果我有一个包含int元素的数组 1,3,3,4,4,5,6,6,7 我的输出数组应该是 1,3,4,5,6,7,0,0,0 我对此问题的第一个尝试是创建一个交换器,以便在删除元素后将所
4回复

删除数组中的重复条目 - Java

对于Java实践,我试图在EmployeesDirectory类中创建一个方法: 从阵列中删除重复的条目 删除重复项后,数组的长度应相同 非空条目应该在数组的开头形成一个连续的序列 - 而actualNum应该保留条目的记录 重复意味着: 相同的名称,职位和薪水
7回复

在Java中删除数组的某些部分

有一个类型为int的数组lut_addresses []。 对变量table_ptr进行了一些计算,该变量也是一个int,代表数组的新基础。 现在,我想从索引table_ptr到数组lut_addresses []的最后一个索引开始分配lut_addresses []值,以便删除直到tabl