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()); } } }