Java есть ли отличие в использование TreeMap
Возможно вопрос покажется глупым, но хочу узнать есть ли разница в этих записях?
Map<Integer, String> map1 = new TreeMap<>(); //1 способ
SortedMap<Integer, String> map2 = new TreeMap<>(); //2 способ
Ответы (1 шт):
Автор решения: Roman Konoval
→ Ссылка
Разница есть.
В обоих случаях будут созданы такие же точно экземпляры TreeMap. Разница заключается в том, какие действия будут доступны через переменные map1 и map2. В случае с map1 нельзя будет делать действия специфичные для SortedMap, т.е. например взятие первого или последнего элемента используя методы типа firstKey, а используя map2 это можно сделать.
Компилятор проверяет тип переменной и для map1 доступны только операции определенные в Map несмотря на то, что map1 содержит ссылку на экземпляр дочернего класса.