java——集合-Map

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的比较常出现于面试题。

你可能感兴趣的:(java——集合-Map)