繁体   English   中英

如果满足条件,如何遍历2D数组并显示索引?

[英]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方法将目标学生与目标学生进行比较,并在找到ij时打印它们。

之所以需要这样做,是因为即使“学生类包含一个比较ID 的compareTo方法” ,也无法将学生的ID与给定的ID值进行比较。 即没有办法问任何一个问题

“这个学生的身份证是什么?”

要么

“此学生的ID是否等于123456789?”

根据作业的当前措辞,您只能问的问题是

“这两个学生的ID相同吗?”

“给两个学生,哪一个具有“较小”(或“较大”)ID?

您不应该比较成对的学生; 您应该将每个学生的ID与123456789进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM