Map集合特点
Collection是单个集合.
Map是一对一对的集合.
特点:
Map< K , V> K代表键key V代表值value
键不可以重复,值可以重复
根据键找值.
使用Map集合添加方法保存数据
Map接口的常用实现类有:
1. HashMap:底层有哈希表,所以查找键的速度特别快。其实昨天的HashSet底层就是在复用HashMap。
2. LinkedHashMap:是HashMap的子类,速度也挺快,但是额外还有链表,从而维护先后顺序。
3. TreeMap:带有大小排序功能。
Map集合常用方法:
public V put( K key ,V value):把指定的键与指定的值添加到Map集合中,返回替换之前的值.
public V remove(Object key):把指定键的对应的元素删除,返回被删除的元素值.
public V get(Object key):根据指定的键,在Map集合中获取对应的值.
public Collection<V> values():获取所有值.
public Set<K> KeySet():获取Map集合中所有的键,并储存到Set集合中.
public Set<Map.Entry<K,V>> entrySet():获取到Map集合中所有的键值对对象的集合(Set集合)。
使用”键找值”的方式遍历Map集合
1.先用KeySet方法把Map集合中的键值转成Set集合.
2.遍历Set集合.
3.用get(Object key)方法获取每一个值.
使用”键值对”的方式遍历Map集合
1.先用entrySet方法把Map集合中的键值对转成Set集合.
2.遍历Set集合.
3.用public K getKey() :获取Entry对象中的键,public V getValue() :获取Entry对象中的值方法获取.
使用HashMap存储自定义键值对的数据
注意事项;
如果自定义为键时,必须重写equals与hashcode方法,保证键值唯一.
补充:
TreeSet:带有大小排序功能。
TreeMap:键带有大小排序功能。
================================
Set,List,Map都有静态of()方法
注意事项:
1. 对于Set来说,如果有重复的,那么将会发生IllegalArgumentException。
2. 通过这种方式产生的集合,是不可改变的。
如果尝试改变,那么将会发生UnsupportedOperationException。