Java 检查数组中的对象属性

Java 检查数组中的对象属性,java,arrays,oop,object,arraylist,Java,Arrays,Oop,Object,Arraylist,我有一个对象数组,我想检查对象中的变量是否有特定的名称。最终我想对数组中的每个对象都这样做,但我只是在第一个索引上测试它。我不确定arraylist是否更适合于此。(我有单独的教员/教室/课程/教科书/姓名课程) 公共静态void startCourse(){ 课程[]课程=新课程[4]; 扫描仪输入=新扫描仪(System.in); for(int i=0;i

我有一个对象数组,我想检查对象中的变量是否有特定的名称。最终我想对数组中的每个对象都这样做,但我只是在第一个索引上测试它。我不确定arraylist是否更适合于此。(我有单独的教员/教室/课程/教科书/姓名课程)

公共静态void startCourse(){
课程[]课程=新课程[4];
扫描仪输入=新扫描仪(System.in);
for(int i=0;i
在设置教员姓名时,看到您的代码时会感到困惑,您正在使用以下语句:

course[i].getFaculty().getName().setfName(facultyfName);
course[i].getFaculty().getName().setlName(facultylName);
这使得人们相信getName()将返回某种具有两个属性的对象fnamelname 但是,当您比较教员姓名时,您使用的是以下语句:

course[0].getFaculty().getName().equals("Ben")
如何将对象字符串进行比较,您应该在代码上下文中使用类似于getfName()getlName()的内容:

course[i].setFaculty(new Faculty(facultyfName,facultylName));//doesnt set name in constructor???
课程
类具有
教员
属性的setter,教员类具有
名称
字段属性的构造函数时,应为有效,如下所示:

Faculty(String fname, String lname) {
   this.name.setfName(fname);
   this.name.setLname(lname);
}
第一个输入提供给

facultyfName = input.nextLine();
是“Ben”,然后比较教员的名字,使用:

System.out.println(course[0].getFaculty().getName().getfName().equals("Ben"));

那么你的问题是什么?您的代码是否按预期工作?如果没有,请提供您的预期结果和实际结果以及任何错误消息或异常。如果在特定索引中键入“Ben”,我应该返回true,但每次都会得到false。那么,您在输入第一门课程的数据时,是否将准确的字符串“Ben”作为教员的名字?如果你放的不是“本”,比如“本”或“本”(前面有空格)或“本”(后面有空格),那就不匹配了。脸上的手掌就是我所缺少的,谢谢。我想问一下,这是一种使用数组的好方法,还是arraylist更适合这种方法?如果您对数字有把握,那么您可以选择array,否则您应该使用arraylist,arraylist内部也使用数组,因此在这两种情况下,您的逻辑都是基于索引的。
System.out.println(course[0].getFaculty().getName().getfName().equals("Ben"));