gpt4 book ai didi

java - 在Arraylist中查找名称,然后将内容传输到数组?

转载 作者:行者123 更新时间:2023-11-30 06:30:49 25 4
gpt4 key购买 nike

我想在学生的 ArrayList 中找到我的名字,然后将我选择的 50 个选项转移到一个名为 myChoices 的新数组(稍后将与其他数组进行匹配)。 Student 类包含一个名称和一个选择的 ArrayList。这是相关的循环:

int matches[] = new int[students.size()];
int myChoices[] = new int[students.get(0).getChoices().size()];

for(int i = 0; i < students.get(i).getChoices().size(); i++){
if(students.get(i).getName().equals("Garrett M")){
myChoices[i] = students.get(i).getChoices().get(i);
}
}

for(int i = 0; i < myChoices.length; i++){
System.out.println(myChoices[i]);
}

在最后一个循环中,我只是想打印我的选择,结果如下:

0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

(这不是 50,但您明白了它的要点 - 在输出中大约有 49 个零和一个 1。)实际输出应该以 1 开头,并且是 0,1 和 -1 的混合:

1 -1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 -1 0 1 0 0 0 0 1 1 1 1 0 1

知道我哪里可能出错吗?

最佳答案

您对 students 列表和 students.get(i).getChoices() 列表使用相同的索引 i。这可能是错误的。

您可能需要一个嵌套循环:

for(int i = 0; i < students.size(); i++) { // iterate over the students to find the one
// having the required name
if(students.get(i).getName().equals("Garrett M")){
// iterate over the choices of the found student and collect them into the array
for (int j = 0; j < students.get(i).getChoices().size; j++) {
myChoices[j] = students.get(i).getChoices().get(j);
}
break;
}
}

关于java - 在Arraylist中查找名称,然后将内容传输到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168540/

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