java - 将属性写入二维数组

标签 java loops nested multidimensional-array

这是我第一次在这里发帖,但我迫切需要一些 Java 专业知识(或者可能只是另一双眼睛)。

我正在将对象(结果)的 ArrayList 写入二维数组。我正在尝试使用嵌套循环。基本上,输入每一行并检查第一列,看看它是否与 ArrayList 中具有相同“团队”属性的任何一个相匹配。如果它找到一个匹配项,它会处理它并删除它,它会继续直到列表末尾,然后退出以在下一行重复该过程。

它似乎有效,但是当它找到匹配项并处理它(包括删除它)时,它似乎不会继续在内循环中查找更多匹配项。

谁能告诉我为什么它不继续循环?

这是我的代码:

private String[][] addScores(String[][] dataTable)
    {
        for(int r = 0; r < dataTable.length; r++)
        {
            Iterator<Result> itr = outcomes.iterator();
            Result temp = new Result();
            while(itr.hasNext())
            {
                temp = itr.next();
                //If a team is found.
                if (dataTable[r][0] == temp.team)
                {
                    //Increases matches played.
                    dataTable[r][1] = String.valueOf(Integer.parseInt(dataTable[r][1]) + 1);
                    if(temp.result == WIN)
                    {
                        dataTable[r][2] = String.valueOf(Integer.parseInt(dataTable[r][2]) + 1);
                    }
                    if(temp.result == DRAW)
                    {
                        dataTable[r][3] = String.valueOf(Integer.parseInt(dataTable[r][3]) + 1);
                    }
                    if(temp.result == LOSE)
                    {
                        dataTable[r][4] = String.valueOf(Integer.parseInt(dataTable[r][4]) + 1);
                    }
                    //removes entry.
                    itr.remove();

                    break;
                }
            }                   
        }

        return dataTable;
    }

最佳答案

您存储球队名称和获胜/平局/失利记录的方式非常尴尬。这个怎么样:

创建团队类

public static class Team
{
    String name;
    int win;
    int draw;
    int lose;
}

将这些团队放入 HashMap 中(使用团队名称作为键):

Map<String,Team> map = new HashMap<String,Team>( );

您可以使用以下方法将新团队添加到 map 中:

map.put( team.name, team );

然后,当您迭代结果时,您需要的是:

Iterator<Result> itr = outcomes.iterator();
while(itr.hasNext())
{
    Result temp = itr.next();
    Team team = map.get( temp.team );

    // etc...
}

关于java - 将属性写入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9833791/

相关文章:

python - 尝试在不使用 for(或类似)循环的情况下对 numpy 数组内的所有子数组执行操作

arrays - 循环找出哪个数组与Ruby中的原始数组具有相同的数字

html - 第二个框架集没有出现在 IE8 中

java - 如何控制 JVM 生成的进程的内存使用情况

java - Servlet Jsp数组打印链接

php - for循环中递增字符有效,递减不?

c# - 访问嵌套类

python - 迭代嵌套列表并选择某些元素并创建一个新列表

Java从文件读取到数组运行时错误

java - Java 中的文本到语音转换