ClassMap содержит карту рассадки учеников в классе в виде двумерного массива String[][] desks.
Если ученик с именем Vasia сидит в 0-м ряду и 0-м столбце то значит desks[0][0]="Vasia"
Реализуйте все методы в который установлен комментарий TODO
1. Метод setDesk(String name) ищет в массиве первое свободное место со значением null и присваивает имя ученика. Возвращает строку с индексами в массиве. Например, "0_0" если ученика разместили в desks[0][0]. Если мест нет то возвращает строку - "свободное место не найдено"
2. Метод setDesk(String name, int row, int col) размещает ученика на конкретное место, возвращает координату в виде "4_5" (при row = 4, col = 5) если размещение успешно на соответствующее место. Если место занято, то - возвращает"место занято".
3. Метод searchDesk(String name) ищет где размещен ученик с заданным именем. Если ученик найден то возвращает координаты в виде "4_5". В противном случае возвращает строку "ученик не найден"
\\\\\\\\\\\
public class ClassMap {
String[][] desks;
public ClassMap(int rows, int columns) {
desks = new String [rows][columns];
}
public String setDesk(String name) {
//TODO требуется реализация
return "свободное место не найдено";
}
public String setDesk(String name, int row, int col) {
//TODO требуется реализация
return "место занято";
}
public String searchDesk(String name) {
//TODO требуется реализация
return "ученик не найден";
}
public String[][] getDesks() {
return desks;
}
}
Tosya
0 уровень
Не решается двухмерный массив и вложенные циклы
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Avrelio Java Developer
17 ноября 2020, 15:12решение
+2
Avrelio Java Developer
17 ноября 2020, 15:15полезный
ну я бы добавил в методе
setDesk(String name, int row, int col) проверку на то что row и col не больше desks
+1
Tosya
17 ноября 2020, 14:04
Вот что пока получается:
public class ClassMap {
String[][] desks;
public ClassMap(int rows, int columns) {
desks = new String [rows][columns];
}
public String setDesk(String name) {
for (int i = 0; i < desks.length; i++) {
for (int j = 0; j < desks.length; j++) {
if (desks[i][j]==null) return desks[i][j]=name;
else ----???
}
}
return "свободное место не найдено";
}
public String setDesk(String name, int row, int col) {
for (int i = 0; i < desks.length; i++) {
for (int j = 0; j < desks.length; j++) {
if ----???
else ----???
}
}
return "место занято";
}
public String searchDesk(String name) {
for (int i = 0; i < desks.length; i++) {
for (int j = 0; j < desks.length; j++) {
if ----???
else ----???
}
}
return "ученик не найден";
}
public String[][] getDesks() {
return desks;
}
}
0
hidden #598481
17 ноября 2020, 14:55полезный
1. else не нужен, если в цикле ничего не найдется, то выполнится return после цикла.
2. циклы не нужны, у тебя есть конкретные row и col, которые являются индексами массива
3. сравниваешь по очереди, как в первом методе, но теперь надо сравнивать не с null, а с переданной строкой name. Строки сравниваются через метод equals(). При этом надо не поймать NullPointerException, если в массиве нет элемента с таким индексом
+1