Скажем, мне нужно сохранить коллекцию объектов-учеников, и каждый ученик имеет уникальный идентификатор. Один из вариантов заключается в том, чтобы сохранить все из них в списке, но тогда, когда вы ищете студента, мне придется выполнять линейный поиск и проверять их идентификаторы. Другой вариант - использовать карту, что-то вроде: Карта, где ключи являются идентификатором студента, который сопоставляется с фактическими объектами студента.Правильное использование объектов хранения на картах
Является ли это разумным подходом к данной проблеме? С одной стороны, это правильно, потому что я могу легко получить студента по их идентификатору, однако, с другой стороны, похоже, что я немного избыточно сохраняю идентификатор, который уже существует в объекте-студенте, поэтому я сортирую для его сохранения дважды, но ключ - это механизм поиска.
Моя бы добавить что-то вроде:
public void add(Student s) {
lookup.put(s.getId(), s);
}
Это - то, что я делаю. Вы также можете реализовать методы equals() и hashCode на объекте вашего ученика –
структуры данных не о чувствах – wero