Я обычно использую объекты-значения в качестве ключей, когда у меня есть сложный ключ;это было бы аналогично первичному ключу в таблице базы данных с более чем одним столбцом.Например, предположим, что у вас есть курс колледжа с несколькими разделами.В Java у вас может быть объект значения, такой как:
class Section {
private String courseName;
private int sectionNumber;
...
}
с getter, setters, equals () и hashCode ().Потенциально у вас могут быть и другие свойства для объекта значения, но если с помощью этих двух свойств записаны equals и hashCode, вы можете использовать Section в качестве ключа карты.
Я видел, как некоторые люди просто объединяли поляони хотят получить ключ в строку, например String key = course + Integer.toString(section);
, но, насколько я понимаю, гораздо более выразительно использовать map.put(section, students)
, чем map.put(section.getCourseName() + Integer.toString(section.getSectionNumber()))
.