java map put原理_Java HashMap中put与get的工作原理

Get:

现在我们来看下get方法的实现:

/**

* Returns the value to which the specified key is mapped, or {@code null}

* if this map contains no mapping for the key.

*

* More formally, if this map contains a mapping from a key {@code k} to a

* value {@code v} such that {@code (key==null ? k==null :

* key.equals(k))}, then this method returns {@code v}; otherwise it returns

* {@code null}. (There can be at most one such mapping.)

*

* A return value of {@code null} does not necessarily indicate that

* the map contains no mapping for the key; it's also possible that the map http://www.heyzc.com/pro/45.html

* explicitly maps the key to {@code null}. The {@link #containsKey

* containsKey} operation may be used to distinguish these two cases.

*

* @see #put(Object, Object)

*/

publicV get(Object key) {

if(key ==null)

returngetForNullKey();

inthash = hash(key.hashCode());

for(Entry e = table[indexFor(hash, table.length)]; e !=null; e = e.next) {

Object k;

if(e.hash == hash && ((k = e.key) == key || key.equals(k)))

returne.value;

}

returnnull;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值