小结
1.Map是一种映射表,可以通过key快速查找value。
2.可以通过for each遍历keySet(),也可以通过for each遍历entrySet(),直接获取key-value。
3.最常用的一种Map实现是HashMap。
4.Map用于存储key-value的映射,对于充当key的对象,是不能重复的,并且,不但需要正确覆写equals()方法,还要正确覆写hashCode()方法。
Map和List不同的是,Map存储的是key-value的映射关系,并且,它不保证顺序。
假设我们放入”A”,”B”,”C”这3个key,遍历的时候,每个key会保证被遍历一次且仅遍历一次,但顺序完全没有保证。
重复放入key-value并不会有任何问题,但是一个key只能关联一个value
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 123);
map.put("pear", 456);
System.out.println(map.get("apple")); // 123
System.out.println(map.put("apple", 789)); //123 放入已经有的key会返回已经
被覆盖掉的value ,否则返回null
// map.put("apple", 789); // 再次放入apple作为key,但value变为789
System.out.println(map.get("apple")); // 789
}
}
2.遍历Map
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 123);
map.put("pear", 456);
map.put("banana", 789);
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println(key + " = " + value);
}
}
}
banana = 789
apple = 123
pear = 456
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 123);
map.put("pear", 456);
map.put("banana", 789);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " = " + value);
}
}
}
banana = 789
apple = 123
pear = 456