2016-03-02 53 views
0

鉴于,如何在2D数组中循环并在条件满足时显示索引?

Student[] students = new Student[5][7]; 

,并假设每个元件已经给出一个适当的值,写的代码段(不是法),将通过阵列搜索其学生ID是“123456789”学生。您应该打印存储学生的位置(行号和列号)。你可以假设Student类包含一个compareTo方法。如果调用方法的对象的ID号小于Student传递给方法的ID号,则compareTo方法返回小于0的值,如果Student的方法ID大于0,则方法返回小于0的值被调用时大于学生传递给该方法的ID号码,如果ID号码相同则为0。

林不知道女巫im实际上比较或使用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); 
     } 
    } 
} 
+1

所以这就是为什么你还没有在一段时间拍了一部电影,忙学习如何编程我看。 – Ceelos

+1

@Ceelos哈哈,好一个!还没用编程不太妙。 –

回答

0

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

1

该作业似乎写得不好或不完整。你没有办法检查Student的ID,只能比较两个对象的方法,所以你的困惑是可以理解的。

如果有一种方式来创建一个Student与指定的ID,你应该这样做(假定一个合适的构造函数)

Student goal = new Student("123456789") 

然后使用compareTo方法在arrray学生比较的目标学生,并在找到它时打印ij的值。

您需要这样做的原因是因为尽管“Student类包含比较ID的compareTo方法”,但无法将学生ID与给定ID值进行比较。即没办法问任何一个问题

“这个学生的ID是什么?”

“这是学生的ID等于123456789?”

你可以问给分配的现有措辞的唯一问题是

“做这些学生有相同的ID?”

“给定两个学生,哪一个具有 '较小的'(或 '更大')ID?“

+0

的的compareTo方法实际上是比较2个学生ID,它只是没有显示,如果学生的方法被调用,它返回0与学生在该方法的参数中具有相同的ID,所以我因为我给了一个2D大小的学生[5] [7]这已经充满了随机ID的学生,我不得不以某种方式比较每个学生,直到我找到了学生与相同的ID。我相信我可能需要创建一个学生与该ID首先比较它,但即使如此,我不知道如果循环正确的方式,并得到每一个索引。感谢您的快速答复btw。 –

+0

查看我的更新回答 –

相关问题