Java 集合框架
java.util.Map接口表示键和值之间的映射。Map接口不是Collection接口的子类型。因此它的行为与其他集合类型略有不同。
Map接口的几个特征是:
map不能包含重复的键,每个键最多可以映射一个值。一些实现允许null键和null值,如HashMap和LinkedHashMap,但有些实现不喜欢TreeMap。
map的顺序取决于具体的实现,例如TreeMap和LinkedHashMap具有可预测的顺序,而HashMap则没有。
在Java中有两个用于实现Map的接口:Map和SortedMap,以及三个类:HashMap,TreeMap和LinkedHashMap。
为什么以及何时使用Map?
map非常适合用于键值关联映射,例如词典。这些映射用于按键执行查找,或者当有人想要按键检索和更新元素时。一些例子是:
错误代码及其描述的映射。
邮政编码和城市map。
经理和员工的map。每个经理(关键)都与他管理的员工(价值)列表相关联。
课程和学生的map。每个班级(关键)都与学生名单(价值)相关联。
Java中Map接口中的方法:
public Object put(Object key,Object value):此方法用于在此映射中插入条目。
public void putAll(Map map):此方法用于在此地图中插入指定的map。
public Object remove(Object key):此方法用于删除指定键的条目。
public Object get(Object key):此方法用于返回指定键的值。
public boolean containsKey(Object key):此方法用于从此映射中搜索指定的键。
public Set keySet():此方法用于返回包含所有键的Set视图。
public Set entrySet():此方法用于返回包含所有键和值的Set视图。
// Java program to demonstrate working of Map interface
import java.util.*;
class HashMapDemo
{
public static void main(String args[])
{
Map< String,Integer> hm =
new HashMap< String,Integer>();
hm.put("a", new Integer(100));
hm.put("b", new Integer(200));
hm.put("c", new Integer(300));
hm.put("d", new Integer(400));
// Returns Set view
Set< Map.Entry< String,Integer> > st = hm.entrySet();
for (Map.Entry< String,Integer> me:st)
{
System.out.print(me.getKey()+":");
System.out.println(me.getValue());
}
}
}
输出:
a:100
b:200
c:300
d:400