2016-03-02 3 views
0

Учитывая,Как пропустить 2D-массив и отобразить индекс, если выполнено условие?

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

и предполагая, что каждый элемент был дан соответствующее значение, написать сегмент кода (а не метод), который будет искать через массив для студента учеником которого идентификатор «123456789». Вы должны напечатать местоположение (как номер строки, так и номер столбца), где хранится ученик. Вы можете предположить, что класс Student содержит метод compareTo. Метод compareTo возвращает значение меньше 0, если объект, на который вызывается метод, имеет идентификационный номер, который меньше, чем идентификационный номер Student, переданный методу, значение больше 0, если идентификационный номер метода Student вызывается больше, чем идентификационный номер Student, переданный методу, и 0, если идентификационные номера одинаковы.

Im not sure witch Student 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

Так вот почему вы не сделали кино в то время. Busy научиться программировать я вижу. – Ceelos

+1

@Ceelos Ха-ха, хороший один.! До сих пор не хорошо с программированием либо. –

ответ

0

Вы не должны сравнивать пары студентов; вы должны сравнивать ID каждого ученика с 123456789.

1

Назначение, по-видимому, плохо написано или неполно. Вам не дается способ проверить идентификатор Student, только метод сравнения двух объектов Student, поэтому ваше замешательство понятно.

Если есть способ создать Student с указанным идентификатором, вы должны сделать это (предполагая, что соответствующий конструктор)

Student goal = new Student("123456789") 

Затем используйте метод compareTo для сравнения студентов в arrray к ученику целей , и распечатайте значения i и j, когда найдете это.

Причины вы должны сделать это таким образом, потому что даже если «класс Student содержит метод CompareTo», который сравнивает идентификаторы, нет никакого способа, чтобы сравнить студент ID для заданного значения ID. То есть никоим образом не задавать ни один из вопросов

«Что такое идентификатор этого ученика?»

или

"Является ли этот студенческий ID равен 123456789?"

Единственных вопросами вы можете задать данные текущую формулировку уступки являются

«ли эти двастуденты имеют одинаковый идентификатор?»

и

«Учитывая два студента, который один имеет 'меньший' (или 'больше') ID?".

+0

CompareTo метод действительно сравнивает 2 идентификатора студента, а его просто не отображается. Он возвращает 0, если учащийся, которому вызван метод, имеет тот же идентификатор, что и ученик в параметре метода. Поэтому я, поскольку им дал 2D-массив учащихся с размером [5] [7], который уже заполнен студентами со случайными идентификаторами, мне нужно как-то сравнить каждого из учеников, пока я не найду Студента с тем же идентификатором. Я считаю, что мне, возможно, придется создать Студента с этим идентификатором сначала, чтобы сравнить это, но даже тогда, я не уверен, если я зациклился надлежащим образом и добрался до каждого индекса. Спасибо за быстрый ответ кстати. –

+0

См. Мое обновление ответа –