Collection接口接口操作的时候,每次都会向集合中增加一个元素,但是如果增加的是一对元素,则使用Map接口来实现,Map是专门用来存储键---值对的对象,Map中存在的关键字和值都必须是对象,并要求关键字是唯一,而值可以重复。

        Map集合 ,键值的映射关系的一种集合(接口) * 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

        Map接口的常用实现类有HashMap和LinkedHashMap类、TreeMap类和Hashtable类。前三个类的行为和功能与Set实现类HashSet、LinkedHashSet以及TreeSet类似。

         Map集合和Collection的区别?

 Map集合:是一种键和值的映射关系(双列集合)

当作为:夫妻对

 Collection集合:单列集合,只能存储一种类型的元素       当作为:光棍

间接关系:HashSet依赖于Map接口的子实现类HashMap的

 

   TreeSet依赖于Map接口的子实现类TreeMap的

Map<K,V> ,在Map集合中,只针对键有效,跟值无关 Map接口的子实现类:HashMap和TreeMap

 Map接口的功能:

             V put(K key,V value) :添加功能:将指定的值和键关联起来

             如果当前的这个键是一次存储,则返回值null

            如果不是第一次存储,返回值是第一次对应的值,当前的值就把之前的键对应的值替换掉!

 

 

1)获取功能

  

set<Map.Entry<K,V>> entrySet() :和Map集合的遍历有关系(键值对对象)

  

Set<K> keySet():获取映射关系中所有的键的集合

  

int size()返回此映射中的键-值映射关系数

  

2)删除功能

  

void clear():删除所有映射关系

   

         Vremove(Object key)如果存在一个键的映射关系,则将其从此映射中移除

  

   

       3)判断功能:

  

boolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true

                 boolean containsValue(Object value):映射关系中是否包含指定的值

  

boolean isEmpty():判断映射关系是否为空。

由于使用的是HashMap类,所以输出的键值对的顺序和放入的顺序并不保持一致,另外,在HashMap里面的key允许为null。

HashMap类的构造方法包括:

1)HashMap()创建一个空的映射对象,使用缺省的填充因子

2)HashMap(int initial Capacity)用指定的初始容量和缺省的填充因子创建一个映射对象。

3)HashMap(int initial Capacity,float loadFactor)用指定的初始容量与填充因子创建一个映射对象。

4)HashMap(Map t)用指定的映射对象创建一个新的映射对象。

LinkedHashMap是HashMap类的子类,它保持键的顺序和插入的顺序一致,其构造方法与HashMap的构造方法一致。

TreeMap可以使存放按照Key值有序存放,注意:由于需要按照Key值进行排序有序存放,而且Key值本身就是对象,因此对象所在的类必须实现Comparable接口。

TreeMap类的构造方法如下:

1)TreeMap()创建根据键的自然顺序排序的空的映射。

2)TreeMap(Comparaor c)根据给定的比较器创建一个空的映射。

3)TreeMap(Map m)用指定的映射创建一个新的映射,根据键的自然顺序排序。

4)TreeMap(SortedMap m)在指定的SortedMap对象创建新的TreeMap对象。