[英]How to loop through a 2D array and display an index if a condition is met?
鉴于
Student[] students = new Student[5][7];
并假定已为每个元素指定了适当的值,则编写一个代码段(不是方法),该代码段将在数组中搜索学生ID为“ 123456789”的学生。 您应该打印学生存储的位置(行号和列号)。 您可以假定Student类包含compareTo方法。 如果调用此方法的对象的ID号小于传递给该方法的Student的ID号,则compareTo方法返回的值小于0;如果调用该方法的Student的ID号小于ID,则返回大于0的值。被调用的大于传递给该方法的学生的ID编号,如果ID相同,则为0。
我不确定女学生是在比较还是使用compareTo方法的参数,或者我是否正确地循环了。 任何帮助表示赞赏。 到目前为止,我有这个。
Employee temp = new Employee();
for(int i = 0; i < employees.length; i++)
{
for(int j = 0; j < employees[i].length; j++)
{
if(temp.compareTo(employees[i][j]) == 0)
{
System.out.println("row " + i + "\ncol " + j);
}
}
}
作业似乎写得不好或不完整。 您没有检查Student
ID的方法,只有比较两个Student
对象的方法,因此您的困惑是可以理解的。
如果有一种方法可以创建具有指定ID的Student
,则应该这样做(假定使用适当的构造函数)
Student goal = new Student("123456789")
然后使用compareTo
方法将目标学生与目标学生进行比较,并在找到i
和j
时打印它们。
之所以需要这样做,是因为即使“学生类包含一个比较ID 的compareTo方法” ,也无法将学生的ID与给定的ID值进行比较。 即没有办法问任何一个问题
“这个学生的身份证是什么?”
要么
“此学生的ID是否等于123456789?”
根据作业的当前措辞,您只能问的问题是
“这两个学生的ID相同吗?”
和
“给两个学生,哪一个具有“较小”(或“较大”)ID? 。
您不应该比较成对的学生; 您应该将每个学生的ID与123456789
进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.