前往顾页
以后地位: 主页 > 收集编程 > Jsp实例教程 >

Java中Map的用法详解

时候:2012-09-19 00:04来源:知行网www.zhixing123.cn 编辑:麦田守望者

Map简介

将键映照到值的工具。一个映照不克不及包含反复的键;每个键最多只能映照到一个值。此接口代替 Dictionary 类,后者美满是一个笼统类,而不是一个接口。

  Map 接口供应三种collection 视图,许可以键集、值集或键-值映照关系集的情势检察某个映照的内容。映照依次 定义为迭代器在映照的 collection 视图上前往其元素的依次。某些映照实现可明白包管其依次,如 TreeMap 类;另外一些映照实现则不包管依次,如HashMap 类。

  注:将可变工具用作映照键时必须非分特别小心。当工具是映照中某个键时,如果以影响 equals 比较的体例变动了工具的值,则映照的行动将是不肯定的。此项避免的一种特别环境是不许可某个映照将本身作为一个键包含。固然许可某个映照将本身作为值包 含,但请非分特别小心:在如许的映照上 equals 和 hashCode 体例的定义将不再是明白的。

  所有通用的映照实现类应当供应两个“标准的”机关体例:一个 void (无 参数)机关体例,用于建立空映照;一个是带有单个 Map 范例参数的机关体例,用于建立一个与其参数具有不异键-值映照关系的新映照。实际上,后一个机关体例许可用户复制肆意映照,天生所需类的一个等价映照。尽 管无法强迫履行此建议(因为接口不克不及包含机关体例),但是 JDK 中所有通用的映照实现都顺从它。

  此接口中包含的“粉碎”体例可点窜其操纵的映照,如果此映照不支撑该操纵,这些体例将抛出 UnsupportedOperationException。如果是如许,那么在调用对映照有效时,这些体例可以(但不请求)抛出 UnsupportedOperationException。比方,如果某个不成点窜的映照(其映照关系是“堆叠”的)为空,则对该映照调用 putAll(Map) 体例时,可以(但不请求)抛出异常。

  某些映照实现对可能包含的键和值有所限定。比方,某些实现避免 null 键和值,另外一些则对其键的范例无限定。测验测验拔出不合格的键或值将抛出一个未经查抄的异常,凡是是 NullPointerException 或 ClassCastException。试图查询是不是存在不合格的键或值可能抛出异常,或前往 false;某些实现将表示出前一种行动,而另外一些则表示后一种。一般来讲,试图对不合格的键或值履行操纵且该操纵的完成不会导致不合格的元素被拔出映照 中时,将可能抛出一个异常,也可能操纵成功,这取决于实现本身。如许的异常在此接口的标准中标识表记标帜为“可选”。

  此接口是 Java Collections Framework 的成员。

  Collections Framework 接口中的很多体例是按照 equals 编制定义的。比方,containsKey(Object key) 体例的标准中写道:“当且仅当此映照包含针对满足 (key==null ? k==null : key.equals(k)) 的键 k 的映照关系时,前往 true”。不 应将此标准解释为:调器具有非空参数 key 的 Map.containsKey 将导致对肆意的键 k 调用 key.equals(k)。实现可随便进行优化,以避免调用 equals,比方,可起首比较两个键的哈希码(Object.hashCode() 标准包管哈希码不相称的两个工具不会相称)。一般来讲,只需实现者以为适合,各种 Collections Framework 接口的实现可随便操纵底层 Object 体例的指定行动。

  常常利用操纵申明

  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中放值 ,重视: map是key-value的情势存放的,如:

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

3 .从map中取值 :

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

成果是: str = "dd'

4 .遍历一个map,从中获得key和value :

Map m= new HashMap();

for(Object obj : map.keySet()){

Object value = map.get(obj );

}
 

顶一下
(322)
67.5%
踩一下
(155)
32.5%
------分开线----------------------------
标签(Tag):Java JAVA实例教程 JAVA根本教程 Java源代码 Java技能
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣