HashMap和HashTable的共同点:
- 使用的是哈希算法
- 使用双列集合
不同点:
- HashMap线程不安全,效率更高,1.2版本后才有;HashTable线程安全,效率不高,1.0版本后有
- HashMap可以存储null;HashTable不能
添加元素:map.put
修改元素:map.put
取得集合大小:map.size()
取得所有key值:map.keySet()
迭代遍历map:Iterator和foreach
//取出所有key值
Set<String> allkeys = map.keySet();
//迭代输出key对应的value值(遍历map)
Iterator<String> it = allkeys.iterator();
while(it.hasNext()){
String key = it.next();
Object val = map.get(key);
System.out.println(key+"="+val);
}
//foreach遍历map
for (String key : allkeys) {
System.out.println(key+"="+map.get(key));
}
获取所有的key-value对象(entry对象)
//获取所有的key-value对象(entry对象)
//entry是定义在map中的一个接口
//获取所有entry对象
Set<Entry<String,Object>> entrySet = map.entrySet();
//遍历entry
Iterator<Entry<String, Object>> ite = entrySet.iterator();
while(ite.hasNext()){
Entry<String,Object> en = ite.next();
//取出entry的key
String key = en.getKey();
//取出entry的value
Object val = en.getValue();
System.out.println(key+"="+val);
}
//foreach取出entry对象
for (Entry<String, Object> entry : entrySet) {
System.out.println(entry.getKey()+"="+entry.getValue());
}