首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java Map <K,V>:为什么get(object)没有得到(K)?

Java Map<K,V>是一种用于存储键值对的数据结构,其中K表示键的类型,V表示值的类型。在Map中,通过键来访问对应的值。

当使用get(object)方法时,它会根据传入的object对象来查找对应的键值对,并返回对应的值。然而,如果get方法没有返回期望的值,可能是由于以下几种情况:

  1. 键不存在:如果传入的object对象在Map中没有对应的键,get方法将返回null。这可能是因为该键尚未被添加到Map中,或者已经被删除了。
  2. 键存在但值为null:如果传入的object对象在Map中存在对应的键,但该键对应的值为null,get方法将返回null。这表示该键存在,但没有关联的值。
  3. 键存在但类型不匹配:Map中的键值对是根据键的哈希值来存储和查找的。如果传入的object对象与存储在Map中的键的哈希值不匹配,get方法将无法找到对应的键值对,返回null。

为了确保能够正确地使用get方法获取到期望的值,需要注意以下几点:

  1. 确保传入的object对象与存储在Map中的键是相同的对象,或者具有相同的哈希值。
  2. 在使用get方法之前,可以使用containsKey方法来检查Map中是否存在指定的键。
  3. 在向Map中添加键值对时,确保键的唯一性,避免出现重复的键。

对于Java Map<K,V>,腾讯云提供了一系列相关产品和服务,如云数据库Redis、云数据库TDSQL、云数据库TBase等,用于满足不同场景下的数据存储和访问需求。你可以通过腾讯云官方网站了解更多关于这些产品的详细信息和使用指南。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java泛型和通配符那点事

* 在 get()、put() 和其他方法的方法签名中使用的 KV。  为了赢得使用泛型的好处,必须在定义或实例化Map类型的变量时为KV提供具体的值。...例如,下面是java.util.Map接口的定义的摘录:  public interface Map {  public void put(K key, V value);  public...V get(K key);  }  Map接口是由两个类型参数化的,这两个类型是键类型K和值类型V。...编译器在遇到一个Map类型的变量时,知道KV现在被绑定为String,因此它知道在这样的变量上调用Map.get()将会得到String类型。 ...类型参数V被判断为由Number限制。在没有类型限制时,假设类型参数由Object限制。这就是为什么前一屏泛型方法 中的例子,允许List.get()在List<?

1.6K50

深入理解Threadlocal的实现原理

Threadlocal 的 对象的使用 类似于  hashmap 的使用,但它没有实现map接口,更不是hashmap的数据结构, 它也是可以像hashmap 一样的 保存 K : V 的键值对,但是一个...createMap(t, value);   该方法会创建一个map,当前线程作为K,重写后initialValue的值是V   return value;    }   我们再看看createMap...> kObject v) {   super(k);                   value = v;               }           }   -----------省略若干不重要的代码...ThreadLocalMap map = getMap(t); 这里get 方法 通过 当前所在线程 得到了一个 ThreadLocalMap ,我们看看 这个getMap(t)干了什么。...2、 Threadlocal 为什么能实现每个线程能有一个独立的变量副本; 因为 ThreadlocalMap存在 Threadlocal这个类当中,你调用get 或者 set 方法的时候,如果没有这个

858100

Java 集合框架(6)---- Map 相关类解析(下)

(Iterator)来遍历元素的,当然,在以迭代器作为基础的情况下,其为我们提供了两种方式来遍历元素: // 得到键的集合,之后通过 get 方法取到对应值 public Set keySet()...V> extends WeakReference implements Map.Entry { V value; final int hash; //... Map synchronizedMap(Map m); 这是一个静态的方法,返回一个线程安全的 Map,这个方法只是对参数中的 Map 对象进行了一下包装,返回了一个新的...来看看其 get 方法: public V get(Object key) { // 如果 key 不为 null,则返回 key,否则返回 NULL_KEY, // NULL_KEY...那么回到 IdentityHashMap 的 get 方法:得到的数组下标是小于 table.length 的偶数,return (V) tab[i + 1]; 也就不会有越界的风险。

66730

Java入门提高篇】Day34 Java容器类详解(十五)WeakHashMap详解

源码详解系列均基于JDK8进行解析 说明 在Java容器详解系列文章的最后,介绍一个相对特殊的成员:WeakHashMap,从名字可以看出它是一个 Map。...V> extends WeakReference implements Map.Entry { ... } Entry继承自WeakReference,继承关系图如下...因为Entry数组的大小是2的幂,在进行查找的时候,进行掩码处理,如果不进行二次散列,那么低位对index就完全没有影响了,如果不清楚也没有关系,之后在get方法里会有说明。...方法 public V get(Object key) { // 对null值特殊处理 Object k = maskNull(key); // 取key的hash值 int...get(K k) { V v = this.eden.get(k); if (v == null) { synchronized (longterm

50540
领券