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对象。