我正在开展一个项目,在那里我会计算学生的选择并将它们添加到一个计数数组中(仍然在这部分工作)。目前,我正在尝试检索已发送的选项并将其添加到Student类中的Student ArrayList。
学生班:
public class Students {
private String name;
private ArrayList<Integer> choices = new ArrayList<Integer>();
public Students(){
name = " ";
}
public Students(String Name){
name = Name;
}
public void setName(String Name){
name = Name;
}
public String getName(){
return name;
}
public void addChoices(int Choices){
choices.add(Choices);
}
public ArrayList<Integer> getChoices(){
return choices;
}
这是我的主要驱动程序类:
public class P1Driver {
public static void main(String[] args) throws IOException{
ArrayList<Students> students = new ArrayList<Students>();
String[] choices = new String[100];
int[] count;
Scanner scan1 = new Scanner(new File("Choices.txt"));
Scanner scan2 = new Scanner(new File("EitherOr.csv"));
// Scan the first file.
int choicesIndex = 0;
while(scan1.hasNextLine()){
String line = scan1.nextLine();
choices[choicesIndex] = line;
choicesIndex++;
}
scan1.close();
// Scan the second file.
int studentIndex = 0;
while(scan2.hasNextLine()){
String line = scan2.nextLine();
String [] splits = line.split(",");
students.add(new Students(splits[0]));
for(int i = 1; i < splits.length; i++){
students.get(studentIndex).addChoices(Integer.parseInt(splits[i]));
}
studentIndex++;
}
scan2.close();
// Instantiate and add to the count array.
int countIndex = 0;
for(int i = 0; i < students.size(); i++){
if(students.get(i).getChoices(i) == -1){
}
}
最后一部分是我现在的位置。它显然没有接近完成(我正好在它的中间)但是在我构建一个for循环以获得学生的选择时,我得到一个错误,上面写着<, strong>&#34;学生类型中的方法getChoices()不适用于参数(int)。&#34; 有人可以解释这意味着什么,我的错误是什么,以及可能的解决方法它?谢谢大家。
答案 0 :(得分:0)
您是否尝试过getChoices()[i]而不是getChoices(i)
答案 1 :(得分:0)
getChoices(int i)
不是您定义的方法。
if(students.get(i).getChoices(i) == -1){
}
getChoices()
会返回一个列表,因此您只需使用列表中的get
方法:
if(students.get(i).getChoices().get(i) == -1){
}
或者,制作getChoice
方法:
public Integer getChoice(int i){
return choices.get(i);
}