gpt4 book ai didi

java - 将值与 ArrayList Java 的特定对象进行比较时出现问题

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

我的 Student 类有一个构造函数,用于设置值 int s_code、String name 和 intage。

当我创建 Student 类的对象时,我将其传递到 AllStudents 的 ArrayList 中。

我的问题是我希望用户输入一个 Id 并检查 ArrayList 中是否有该 Id。如果不允许他添加新学生,请告诉他再试一次。

我尝试使用 for 和其中的 ArrayList 循环我有一个带有 .contains 的 if 语句,如果它是 true,我有一个简单的 println("Good") 只是为了测试它。

当我运行我的程序时,它会跳过它。

这是我的代码:

static ArrayList<Student> AllStudents = new ArrayList<Student>();
static void InitStudents() //this is a method that creates some students when I call it in main.
{
AllStudents.add(new Student(1,"James",15));
AllStudents.add(new Student(2,"John",16));
AllStudents.add(new Student(3,"Rose",15));

}


System.out.println("Enter the ID of the student you want to add.");
Scanner get_new_code = new Scanner(System.in);
int s_code = get_new_code.nextInt();



for(Student code : AllStudents)
{
if (AllStudents.contains(s_code)) //I think that I have to include age and name for it to work.
{
System.out.println("Good");
}
}

顺便说一句,如果我没有解释某些事情或者我做了一些完全错误的事情,我很抱歉,我是 Java 新手。

最佳答案

该高级循环对您实现它的方式没有帮助。

for(Student code : AllStudents){          //"code" is one element out of the list
if (AllStudents.contains(s_code)){ //here you are checking the whole list
System.out.println("Good");
}
}

这可能就是您正在寻找的:

for(Student code : AllStudents){       
if(code.getSCode() == s_code){ //here the one element named "code",
//out of the list, will be checked
System.out.println("Good");
}
}

getter 方法(例如调用 getSCode())将在这里帮助您,询问学生对象的每个属性。它将返回您正在查看的对象的 s_code。

编辑示例:

public class Student{
int s_code;
String name;
int age;

public Student(int code, String name, int age){
this.s_code = code;
this.name = name;
this.age = age;
}

public int getSCode(){
return s_code;
}

public int setSCode(int newSCode){
this.s_code = newSCode;
}
}

使用 getter 和 setter,您可以请求对象的数据,也可以设置数据。

关于java - 将值与 ArrayList Java 的特定对象进行比较时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61412828/

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