“键值”对映射的抽象接口。该映射不包括重复的键,一个键对应一个值
1.实例化一个对象
Map<Integer, String> maps = new HashMap<Integer, String>();
则在添加的时候要一一对应类型,其他方法也类似
// 添加元素
maps.put(10,"A");
maps.put(20,"B");
如果实例类型为两个string
Map<String, String> maps = new HashMap<String, String>();
则在添加元素的时候也需要对应,其他方法也类似
maps.put("book","english");
maps.put("name","码农研究僧");
2.添加元素
maps.put(Object key, Object value);
3.修改元素
maps.replace(Object key, Object value);
4.删除元素
maps.remove(Object key);
5.此映射包含指定键的映射关系,则返回 true
boolean containsKey(Object key)
6.此映射将一个或多个键映射到指定值,则返回 true
boolean containsValue(Object value)
7.指定的对象与此映射是否相等
boolean equals(Object o)
8.判定值
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
get(Object key)
Map.Entry是Map声明的一个内部接口
类型为Entry
接口中有getKey(),getValue方法
1.遍历map的集合
冒号前面是集合中的元素,后面是集合
取出集合中的每个元素进行操作
map.entryset()这个方法返回的就是Entry的集合
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
2.遍历map的key和value值
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);
}
3.使用Iterator遍历
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integer, Integer> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
4.通过键找遍历
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key = " + key + ", Value = " + value);
}
class Solution {
public int majorityElement(int[] nums) {
Map<Integer, Integer> counts = new HashMap<Integer, Integer>();
for (int num : nums) {
if (!counts.containsKey(num)) {
counts.put(num, 1);
} else {
counts.put(num, counts.get(num) + 1);
}
}
Map.Entry<Integer, Integer> majorityEntry = null;
for (Map.Entry<Integer, Integer> entry : counts.entrySet()) {
if (majorityEntry == null || entry.getValue() > majorityEntry.getValue()) {
majorityEntry = entry;
}
}
return majorityEntry.getKey();
}
}