Map集合:(接口)

Map<K,V>    将键映射到值的对象

1、特点:

(1)将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射一个值。
(2)无序

2、Map集合和Collection集合的区别:

    Map集合存储的元素是成对出现的,Map集合的键是唯一的,值是可重复的。
    Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。
    Map集合的数据结构值针对键有效,与值无关
    Collection集合的数据结构是针对元素有效

3、Map集合的功能:

(1)添加功能:
         V put(K key,V value):添加元素
(2)删除功能:
         void clear():移除所有键值对关系
         V remove(Object key):根据键删除键值对元素,并把值返回
(3)判断功能:
         boolean containsKey(Object key):判断是否包含指定的键
         boolean containsValue(Object value):判断是否包含指定的值
         boolean isEmpty():判断是否为空
(4)获取功能:
         Set<Map.Entry<K,V>> entrySet():返回的是键值对
         V get(Object key):根据键获取值
         Set<K> keySet():获取集合中所有键的集合
         Collection<V> values():获取集合中所有值的集合
(5)长度功能:
         int size():返回集合中的键值对的对数

4、Map集合的两个常用的实现类:

         HashMap 和 TreeMap

遍历:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String,String>();
        map.put("Tom", "Jerry");
        map.put("海绵宝宝", "派大星");
        map.put("佩奇", "乔治");
        
        //方法一:先获取键的集合,通过键来获取值
        Set<String> set = map.keySet();
        for(String key : set) {
            String value = map.get(key);
            System.out.println(key + "----" + value);
        }
        
        //方法二:先获取所有键值对的集合,通过键值对来获取键和值
//        Set<Map.Entry<String, String>> set = map.entrySet();
//        for(Map.Entry<String, String> me : set) {
//            String key = me.getKey();
//            String value = me.getValue();
//            System.out.println(key + "----" + value);
//        }
    }
}

(1)HashMap:
         是基于哈希表的Map接口实现
         哈希表的作用是用来保证键的唯一性

(2)LinkedHashMap:
        是HashMap的一个子类
        是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序
        由哈希表保证键的唯一性,由链表保证键盘的有序

(3)TreeMap:
         键是红黑树结构,可以保证键的排序和唯一性