全国咨询/投诉热线:400-618-4000

Map集合以及Map集合和Collection集合的区别

更新时间:2018年08月06日14时00分 来源:传智播客

  一 、Map:将键映射到值的对象。Map集合没有迭代器!Map集合特点:该集合存储键值对。而且键是唯一的。

  |--->方法摘要:

  |--->添加:

  V put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。

  void putAll(Mapm) 从指定映射中将所有映射关系复制到此映射中

  |--->删除:

  void clear() 从此映射中移除所有映射关系(可选操作)。

  V remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

  |--->判断

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

  boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。

  boolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true。

  |--->获取

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

  Collection values() 返回此映射中包含的值的 Collection视图。

  重点:Map集合没有迭代器,以下是Map的两种取出方式:

  第一种:Set keySet()

  返回此映射中包含的键的Set视图,将Map集合中所有的键存入Set集合,然后再通过Set集合的

  迭代器取出所有的键,再根据get方法获取每个键的值;

  第二种:Set> entrySet()

  返回此映射中包含的映射关系的Set视图,将Map集合中的映射关系存入到Set集合中,

  这个映射关系的数据类型是Map.entry,再通过Map.Entry类的方法再要取出关系里面的键和值

  Map.Entry的方法摘要:

  boolean equals(Object o) 比较指定对象与此项的相等性。

  K getKey() 返回与此项对应的键。

  V getValue() 返回与此项对应的值。

  int hashCode() 返回此映射项的哈希码值。

  V setValue(V value) 用指定的值替换与此项对应的值(特有!!!)。

  二 、Map集合和Collection集合的区别?

  1,

  Map中一次存储是键值对。

  Collection中一次存储是单个元素。

  2,

  Map的存储使用的put方法。

  Collection存储使用的是add方法。

  3,

  Map集合没有迭代器,Map的取出,是将Map转成Set,在使用迭代器取出。

  Collection取出,使用就是迭代器。

  4,

  如果对象很多,必须使用集合存储。

  如果元素存在着映射关系,可以优先考虑使用Map存储或者用数组,

  如果没有映射关系,可以使用Collection存储。

  8、迭代器:Iterator(Map集合没有迭代器)

  (1)迭代器就是取出集合元素的方式

  (2)迭代器的作用

  因为每个集合中元素的取出方式都不一样,于是就把元素的取出方式进行抽取,并定义在集合内部,

  这样取出方式就可以直接访问集合内部的元素;

  而每个容器的数据结构不同,所以取出动作的细节也不一样,但是有共性内容:判断和取出。

  那么就将共性内容进行抽取,从而形成了接口Iterater

  (3)获取迭代器的方法:

  Iterator iterator() 返回在此 collection 的元素上进行迭代的迭代器。

  Iterator iterator() 返回在此 set 中的元素上进行迭代的迭代器。

  (3)迭代器方法:

  boolean hasNext() 如果仍有元素可以迭代,则返回 true。

  E next() 返回迭代的下一个元素。

  void remove() 从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。

  

  作者:传智播客JavaEE培训学院

  首发:http://java.itcast.cn/