Я так и думал имело бы МНОГО смысла, если бы это было объявлено так:
Код: Выделить всё
public interface Map extends Collection
Так есть ли веская причина, почему это не реализовано как таковое?
Спасибо Cletus за наиболее авторитетный ответ, но мне все еще интересно, почему, если вы уже можете просмотреть Map как Set (через входSet()), он не просто расширяет этот интерфейс.
Если Карта — это коллекция, каковы ее элементы? Единственный разумный ответ — «Пары ключ-значение».
Точно, интерфейс Map расширяет Set> было бы здорово!
но это дает очень ограниченную (и не особо полезную) карту абстракция.
Но если это так, то почему входной набор указан в интерфейсе? Это должно быть каким-то образом полезно (и я думаю, что эту позицию легко аргументировать!).
Вы не можете спрашивать, какую ценность имеет данное значение. ключ сопоставляется, и вы не можете удалить запись для данного ключа, не зная, какому значению он соответствует.
Я не говорю вот и все, что нужно для Map! Он может и должен сохранить все остальные методы (кроме inputSet, который теперь излишен)!
Подробнее здесь: https://stackoverflow.com/questions/265 ... collection
Мобильная версия