Что такое коллекция, которая HashMap.метод values () в Java возвращает?
Java SE 6.0 API говорит values()
метод java.util.HashMap
возвращает Collection
тип. Как JVM решает, какую коллекцию возвращать во время выполнения. Является ли это конкретным jvm или есть какие-либо общие рекомендации, которым следует Java. Я просмотрел исходный код HashMap
но не мог понять. Любая помощь высоко ценится, или если вопрос хромает, любезно укажите мне, почему.Спасибо.
2 ответов
вы можете увидеть в источниках:
public Collection<V> values() {
if (values == null) {
values = new AbstractCollection<V>() {
...
они фактически дают пользовательскую реализацию AbstractCollection
.
важно знать об этой коллекции, что она не Сериализуема : никогда не пытайтесь отправить ее как есть между клиентом и сервером.
обратите внимание, что этот экстракт поступает из источников Sun JDK. Это значит, что это конкретной реализации продавцом.
не JVM решает, какую коллекцию возвращать во время выполнения, а фактическая реализация интерфейса карты. В случае HashMap это HashMap.Значения внутреннего класса, см. HashMap src