参考链接:
继承关系图
初始化方法
初始化时指定类型:
Map<Integer, Integer> myMap=new HashMap();
(不要写成 Map myMap=new HashMap<Integer, Integer>(); 这样不会自动类型转换,key和value都是Object类型 )
初始化时不指定类型:
Map myMap= new HashMap();
快速初始化:
Map<Integer, Integer> myMap=new HashMap(){
{
put(1001,2);
put(1002,2);
}
};
1.Map常见操作方法
hashMap,linkedHashMap,treeMap等都实现了Map接口,以下方法通用
(1)插入键值对
(2)修改值
//判断map中是否包含指定的key
if (map.containsKey("key")){
//如果存在,可以直接put新的键值对。新的键值会自动覆盖之前的。
map.put("key","val");
}
(3)查找键key
(4)查找值value
获取指定键的值:
(5)依据给定的key,删除指定键值对
(6)Map的大小
(7)清空Map
(8)判断为空
(9)返回key键集合,Set形式
(10)返回value值集合
(11)返回键值对集合,Set形式,做遍历
遍历
方法一:
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
方法二:
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的键
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}
方法三:
java8新增的foreach遍历
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
2.HashMap
(1)构造方法
(2)Map 是一个散列表,它存储的内容是键值对(key-value)映射。可以存入null键,null值
3.LinkedHashMap
按插入顺序排列的hashMap
4.SortedMap
5.TreeMap
(1)TreeMap实现了SortedMap接口,保证了有序性。默认的排序是根据key值进行升序排序,也可以重写comparator方法来根据value进行排序。
(2)TreeMap会自动排序,如果存放的对象不能排序则会报错,所以存放的对象必须指定排序规则