List как ключ для HashMap

List как ключ для HashMap

В качестве ключа 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}
Коллекции