一.Map接口存储的是 一组成对的键(key)和值(value)对象,提供key到value的映射,主要是通过key来进行检索,因为key的要求是无序但是要唯一,而value也是无序,但是可以重复,所以就只能通过key来进行索引;
二.Map接口的常用方法:
1.添加数据,成对添加Object put (Object key,Object value),这里的key和value的类型可以为任何类型!
//Map接口中的key不要求有序,但是不能重复,重复就会被覆盖;
//但是Map中的value不要求有序,但是允许重复!
countey.put("CN","中国");
countey.put("AU","澳大利亚");
countey.put("JP","日本");
countey.put("USA","美国");
2.移除与指定key相关的映射
//删除某个特定的key所对应的键值对
countey.remove("USA");
3.获得与key相关的value值,如果没有则返回null;这里需要注意的是,因为Map基本上是通过key来遍历或者查询value的值,需要把Map中的所有key 放在一起,因为key的特性,所以可以使用前面的Set 来存放一个Map中的所有key:(即 Set keySet() 方法,获取所有key的集合)
Set keys=country.ketSet();
//通过key,再结合Object get(Object key);获得与key相对应的value值;
//基本上是采用for循环的形式来输出key和value;
三.Map的遍历有哪几种:
分析:因为Map中的对象是无序的,所以不能使用一般的for循环来进行遍历。因此可以使用增强型for或者前面提过的 Itrerator(迭代器来进行遍历);都是通过get(key)获取value;
注意:无论是增强型for还是Iterrator(迭代器);遍历的都是Map对象的key值,所以第一步都是获取所有的key;通过keyset()方法
增强for:
Set keys=countey.keySet();
所有的key放到Set中:
for (Object obj:keys )
{
String key=(String )obj;//Map中的每一个key;
String value=(String)countey.get(key);//Map中的每一个key对应的value;
System.out.println(key+"-----"+value);
}
迭代器:
Set keyss=countey.keySet();
//同上,获取所有的key的集合;
Iterator iterator1= keyss.iterator();
while (iterator1.hasNext()){
String s= (String)iterator1.next();
String value=countey.get(s);
System.out.println(s+"----->"+value);
}
还有一种就是遍历Key-value对来进行获取;主要的方法是map.enteyset()获取键值对,其类型是Map.Entry
再通过getKey()、getValue()获取对应的数组,同时要注意类型的转换;
Set set1=countey.entrySet();
//entrySet()获取Map中的键值对,因为是键值对,包含key和value,其类型为Map.Entry再常用增强for来遍历键值对集合;
for (Object obj:set1
) {
Map.Entry m=(Map.Entry) obj;
String key=(String)m.getKey();
直接通过getkey和getvalue来获取数值;
String value=(String)m.getValue();
System.out.println(key+"********"+value);
}