
В качестве ключа HashMap может принимать объекты, в том числе и List.
Причём для List не обязательно указывать тип хранимых объектов, ключами могут быть разные списки, хранящие разные типы объектов.
enum Season {
SUMMER, SPRING, WINTER, AUTUMN
}
List<Season> warm = new ArrayList<>();
warm.add(Season.SUMMER);
warm.add(Season.SPRING);
List<Integer> linkList = new LinkedList<>();
linkList.add(17);
linkList.add(100500);
linkList.add(6587);
Map<List, String> map = new HashMap<>();
map.put(warm, "one");
map.put(linkList, "two");
Set<Map.Entry<List, String>> set = map.entrySet();
for (Map.Entry<List, String> entry : set) {
System.out.println(entry);
}
/*
[SUMMER, SPRING] = one
[17, 100500, 6587] = two
*/
Удаление по ключу List:
List<Season> warm2 = new ArrayList<>();
warm2.add(Season.SUMMER);
warm2.add(Season.SPRING);
map.remove(warm2);
System.out.println(map); // {[17, 100500, 6587] = two}