Map接口的使用

1方法说明

  void clear()

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

  boolean containsKey(Object key)

  如果此映射包含指定键的映射关系,则返回 true

  boolean containsValue(Object value)

  如果此映射将一个或多个键映射到指定值,则返回 true

  Set<Map.Entry<K,V>> entrySet()

  返回此映射中包含的映射关系的 Set 视图。

  boolean equals(Object o)

  比较指定的对象与此映射是否相等。

  V get(Object key)

  返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null

  int hashCode()

  返回此映射的哈希码值。

  boolean isEmpty()

  如果此映射未包含键-值映射关系,则返回 true

  Set<K> keySet()

  返回此映射中包含的键的 Set 视图。

  V put(K key, V value)

  将指定的值与此映射中的指定键关联(可选操作)。

  void putAll(Map<? extends K,? extends V> m)

  从指定映射中将所有映射关系复制到此映射中(可选操作)。

  V remove(Object key)

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

  int size()

  返回此映射中的键-值映射关系数。

  Collection<V> values()

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

Map的一般用法

1.声明一个Map :

   Map map = new HashMap();

2 .向map中放值 注意: mapkey-value的形式存放的,如:

       map.put("sa","dd");

3 .从map中取值 :

    String str = map.get("sa").toString,

    结果是: str = "dd'

添加、删除操作:

 

Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像。如果该关键字已经存在,那么与此关键字相关的新值将取代旧值。方法返回关键字的旧值,如果关键字原先并不存在,则返回null

 

Object remove(Object key): 从映像中删除与key相关的映射

 

void putAll(Map t): 将来自特定映像的所有元素添加给该映像

 

void clear(): 从映像中删除所有映射

 

“键和值都可以为null。但是,您不能把Map作为一个键或值添加给自身。”

查询操作:

 

Object get(Object key): 获得与关键字key相关的值,并且返回与关键字key相关的对象,如果没有在该映像中找到该关键字,则返回null

 

boolean containsKey(Object key): 判断映像中是否存在关键字key

 

boolean containsValue(Object value): 判断映像中是否存在值value

 

int size(): 返回当前映像中映射的数量

 

boolean isEmpty() :判断映像中是否有任何映射

视图操作 :处理映像中键/值对组

 

Set keySet(): 返回映像中所有关键字的视图集

 

“因为映射中键的集合必须是唯一的,您用Set支持。你还可以从视图中删除元素,同时,关键字和它相关的值将从源映像中被删除,但是你不能添加任何元素。”

 

Collection values():返回映像中所有值的视图集

 

“因为映射中值的集合不是唯一的,您用Collection支持。你还可以从视图中删除元素,同时,值和它的关键字将从源映像中被删除,但是你不能添加任何元素。”

 

Set entrySet(): 返回Map.Entry对象的视图集,即映像中的关键字/值对

 

“因为映射是唯一的,您用Set支持。你还可以从视图中删除元素,同时,这些元素将从源映像中被删除,但是你不能添加任何元素。”

7. HashMap类和TreeMap

 

“集合框架”提供两种常规的Map实现:HashMapTreeMap (TreeMap实现SortedMap接口)。在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。使用HashMap要求添加的键类明确定义了hashCode()equals()的实现。

 

这个TreeMap没有调优选项,因为该树总处于平衡状态。

 

7.1. HashMap

 

为了优化HashMap空间的使用,您可以调优初始容量和负载因子。

 

(1) HashMap(): 构建一个空的哈希映像

 

(2) HashMap(Map m): 构建一个哈希映像,并且添加映像m的所有映射

 

(3) HashMap(int initialCapacity): 构建一个拥有特定容量的空的哈希映像

 

(4) HashMap(int initialCapacity, float loadFactor): 构建一个拥有特定容量和加载因子的空的哈希映像

 

7.2. TreeMap

 

TreeMap没有调优选项,因为该树总处于平衡状态。

 

(1) TreeMap():构建一个空的映像树

 

(2) TreeMap(Map m): 构建一个映像树,并且添加映像m中所有元素

 

(3) TreeMap(Comparator c): 构建一个映像树,并且使用特定的比较器对关键字进行排序

 

(4) TreeMap(SortedMap s): 构建一个映像树,添加映像树s中所有映射,并且使用与有序映像s相同的比较器排序

 

posted @ 2015-10-28 19:14  烟花散尽  阅读(200)  评论(0编辑  收藏  举报