gpt4 book ai didi

java - 将属性写入二维数组

转载 作者:行者123 更新时间:2023-12-01 15:28:45 25 4
gpt4 key购买 nike

这是我第一次在这里发帖,但我迫切需要一些 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com