Map提供了一种映射关系,其中的元素是以键值对的形式存储的,可以根据 key 来快速查找value值。
Map中的键值对是以Entry类型的对象实例形式存在的。key不可以重复,value值是可以重复的。
Map中常用的方法:
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class TestMap {
public static void main(String[] args) {
Map<String,Stu> stuMap = new HashMap<String,Stu>();
stuMap.put(null, new Stu("1","tom"));
stuMap.put(null, new Stu("1","tom"));
System.out.println(stuMap.size());//输出为1,只能有一个为null的key
stuMap.put("2", new Stu("2", "jack"));
stuMap.put("3", new Stu("3", "alex"));
System.out.println("*****获取所有的 '键→值'对象集合*******");
Set<Entry<String,Stu>> stu = stuMap.entrySet();
for (Entry<String, Stu> entry : stu) {
System.out.println(entry.getKey() + ":" + entry.getValue().getName());
}
System.out.println("*****获取所有的 '键'对象集合*******");
Set<String> keySet = stuMap.keySet();
for (String key : keySet) {
Stu s = stuMap.get(key);//通过key值获得key值对应的值
if(s != null) {
System.out.println(key + ":" + s.getName());
}
}
System.out.println("******修改Map中的某个值*******");
Stu s = stuMap.get("3");//获取某个key对应的对象,修改对象的数值
s.setName("lucy");
stuMap.put(null, new Stu("0","0"));//重新增加一个已有key的键值对,这样会把之前的已有的键值对替换掉
Set<Entry<String,Stu>> stuSet = stuMap.entrySet();
for (Entry<String, Stu> entry : stuSet) {
System.out.println(entry.getKey() + ":" + entry.getValue().getName());
}
stuMap.remove("3");//删除某个元素
Set<Entry<String,Stu>> stuSetR = stuMap.entrySet();
for (Entry<String, Stu> entry : stuSetR) {
System.out.println(entry.getKey() + ":" + entry.getValue().getName());
}
}
}