各种集合key,value能否为null
2024-09-05 23:00:37
转:
各种集合key,value能否为null
2019年03月12日 13:22:58 mingwulipo 阅读数 238
HashMap
key,value都可以为null
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
key只能有一个为null,多个key=null的会覆盖,value可以多个为null
HashMap<Integer, Integer> map = new HashMap<>();
map.put(1, null);
map.put(2, null);
map.put(null, 1);
map.put(null, 2);
System.out.println(map);//{null=2, 1=null, 2=null}
Hashtable
key,value都不能为null
// Make sure the value is not null
if (value == null) {
throw new NullPointerException();
}
// Makes sure the key is not already in the hashtable.
Entry<?,?> tab[] = table;
int hash = key.hashCode();
直接调用key.hashcode方法,所以key不能为null
value为null,抛出空指针
ConcurrentHashMap
key,value都不能为null
if (key == null || value == null) throw new NullPointerException();
int hash = spread(key.hashCode());
key或value为null,抛出空指针
key调用hashcode方法后,用spread方法二次hash
TreeMap
key不能为null,value可以为null
if (key == null)
throw new NullPointerException();
key为null,抛出空指针
最新文章
- 做技术最自由,在IT最幸福!
- 使用PopupWindow实现Menu功能
- jQuery ajax - get(),getJSON(),post()方法
- return break continue
- imports,using,和include之间的区别
- 三星 note3销售地查询、销售地代码
- 关于jdbc Oracle数据库连接的URL错误
- POJ 3280 Cheapest Palindrome 简单DP
- 深入浅出KnockoutJS
- HTML标签类型及特点
- 云计算之路-阿里云上:访问阿里云CDN上的图片,自动跳转到百度首页
- DomeOS部署
- feemarker知识
- 【VBA】数组定义时,括号内的数值n为最大下标,其长度为n+1
- Tribonacci UVA - 12470 (简单的斐波拉契数列)(矩阵快速幂)
- luogu2774 [网络流24题]方格取数问题 (最小割)
- 【译】第12节---数据注解-ConcurrencyCheck
- POJ--1699 Best Sequence(DP+dfs)
- Java--下载历史版本登录账户
- Socket通讯介绍