Map接口
put()和get()分别用于向Map中存入元素和取出元素
containsKey和containsValue是否包含指定的键和值
keySet和values()获取Map中的所有键和值
hashMap集合
用于存储键值映射关系,必须保证不出现重复的键
如何遍历Map中的键值对
HashMap以键-值对(关键字:值)的形式存储对象,关键字key是唯一的、不重复的。
1) key可以是任何对象,Value可以任何对象。
2) (key:value)成对放置在集合中。
3) 重复的key算一个,重复添加是替换操作(会覆盖原来的元素)。
4) 根据key的散列值计算散列表,元素按照散列值(不可见)排序。
5) HashMap默认的容量:16,默认加载因子(加载率) 0.75。
6) HashMap根据key检索查找value值。
HashMap可以在构造时指定参数:初始容量和加载因子,一般使用默认。
Map的迭代
1、对key:value 进行迭代 map.entrySet();
2、对key进行迭代 map.keySet();
3、对value进行迭代 map.values();
1.先遍历Map集合中的所有键再根据键获取相应的值
Map m = new HashMap<>();
m.put(1,"哈哈");
m.put(2,"嘿嘿");
Set s = m.entrySet(); 获得所有键
Iterator i = s.iterator();
while (i.hasNext()) {
Object key = i.next();
Object value = m.get(key);
System.out.println(key+":"+value );
2.Entry是Map接口内部类
Map m = new HashMap<>();
m.put(1, "哈哈");
m.put(2, "嘿嘿");
Set s = m.entrySet();// 获得所有键
Iterator i = s.iterator();
while (i.hasNext()) {
Map.Entry entry = (Map.Entry) (i.next());// 集合中的键值对应关系
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + ":" + value);
3.获取值
Map m = new HashMap<>();
m.put(1, "哈哈");
m.put(2, "嘿嘿");
Collection values = m.values();
Iterator i = values.iterator();
while (i.hasNext()) {
Object value = i.next();
System.out.println(value);
Properties集合
HashTable是线程安全的,存取元素速度慢,基本被HashMap类所取代
Properties是HashMap的子类,主要用来存取应用的配置项
setProperty():添加
getProperty()获取
HashMap VS Hashtable
1、HashMap 新,非线程安全,不检查锁,快。
2、Hashtable 旧 (JDK1.2版本以前),线程安全,检查锁,慢一点(差的很小)。
3、HashMap较常用,HashMap和HashTable的比较常出现于面试题。
网友评论