java - Java中的HashMap.values()方法返回的集合是什么?

标签 java hashmap

Java SE 6.0 API 表示 java.util.HashMap 中的 values() 方法返回一个 Collection 类型。 JVM 如何决定在运行时返回哪个集合。它是特定于 jvm 的还是有 Java 遵循的任何一般准则。我浏览了 HashMap 的源代码,但找不到任何线索。非常感谢任何帮助,或者如果问题很蹩脚,请指出原因。谢谢。

最佳答案

你可以在源代码中看到:

public Collection<V> values() {
    if (values == null) {
        values = new AbstractCollection<V>() {
          ...

他们实际上给出了 AbstractCollection 的自定义实现。

了解此集合的重要一点是它不可序列化:永远不要尝试在客户端-服务器之间按原样发送它。

请注意,此摘录来自 Sun JDK 源代码。这意味着它特定于供应商实现

关于java - Java中的HashMap.values()方法返回的集合是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17171721/

相关文章:

java - 如何创建nodejs xmpp服务器和android xmpp客户端

java - 我们可以创建具有动态键和动态值的 HashMap 吗?

java - Java中的HashMap实现。桶索引计算是如何工作的?

java - 在/share 和/alfresco 之间的 POST 请求上的 Alfresco 随机 HTTP 400

java - Thymeleaf#strings.replace 为正则表达式和 :fragment

java - 我如何从java读取MS-Word书签

java - SimpleDateFormat 未产生预期输出

c# - 批评这个 C# Hashmap 实现?

java - HashMap put方法说明

java - 如何使用 Java Streams 从 HashMap 的 ArrayList 中获取字符串