В интерфейсе класса ClassMap в 13-ой строке выходит ошибка: ...Cannot resolve symbol 'initialCapacity'(Невозможно разрешить символ initialCapacity)... Никак не могу понять чего не хватает?
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
public class ClassMap {
final Map<String, String> desks;
final Set<String> places;
public ClassMap(int rows, int columns) {
//TODO инициализация массива desks
desks=new HashMap<>();
places = new LinkedHashSet<>( initialCapacity, rows * columns);
for (int i=0; i < rows; i++) {
for (int j=0; j < columns; j++) {
places.add(i + "_" + j);
}
}
}
public String setDesk(String name) {
if (places.isEmpty()) {
throw new ClassMapException("свободное место не найдено");
}
String place = places.stream().findFirst().get();
desks.put(name, place);
places.remove(place);
return place;
}
public String setDesk(String name, int row, int col) {
String place = row + "_" + col;
if (!places.contains(place)) {
throw new ClassMapException("место занято");
}
desks.put(name, place);
places.remove(place);
return place;
}
public String searchDesk(String name) {
String place = desks.get(name);
if (place == null) {
throw new ClassMapException("ученик не найден");
} else {
return place;
}
}
public Map<String, String> getDesks() {
return desks; }
}
Альберт
4 уровень
Что не так с кодом? Помогите пожалуйста.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
22 ноября 2020, 16:59
А что такое initialCapacity в твоем коде?
0
Альберт
22 ноября 2020, 17:08
Это код карты школьного класса, где есть столы, а ( initialCapacity, rows * columns) начальная вместимость и расстановка столов в этом классе.
0
Ksenia VolkovaJava Developer в DXCMaster
22 ноября 2020, 17:29
Откуда взялась эта строка?
Если это ты ее написал, что ты имел в виду?
У LinkedHashSet есть конструктор с двумя параметрами, при чем 1-й - это initial capacity, а 2-й - load factor.
Но в твоем случае 1) ты в качестве первого параметра передаешь несуществующую, нигде не объявленную переменную; 2) в качестве load factor используешь произведение rows и columns, что нелогично.
+2
Альберт
22 ноября 2020, 17:55
Я понял. Вопрос исчерпан. Благодарю Вас!
0