Map
-
java.util.Map 查找表
-
Map体现的样子是一个多行两列的表格,左类称为key,右列称为value.
-
Map总是根据key来获取对应的value
-
map有一个要求,key不允许重复,并且总是成对保存数据的。
-
常用实现类:java.util.HashMap,称为散列表或哈希表。当今查询速度最快的数据结构.
TreeMap 二叉树
示例:
Map<String, Integer> map = new HashMap<>();
Map常用方法
-
V put(K k,V v)
将给定的键值对存入Map中。返回值为被替换的value(前提是用了相同的key时才会被替换,否则返回值为null)
示例:
map.put(“语文”, 99); -
V get(Object key)
根据给定的key获取对应的value,如果给定的key不存在,则返回值为null
示例:
Integer num = map.get(“物理”); -
V remove(Object key)
删除给定的key所对应的这组键值对,返回值为对应的value
示例:
map.remove(“英语”); -
int size()
map的大小
示例:
int size = map.size(); -
void clear()
清除map
map.clear() // {} -
boolean containsKey(Object key)
map中是否包含该key
boolean containsValue(Object value)
map中是否包含该value
Map的遍历
-
map支持三种遍历方式
- 遍历所有的key
- __遍历所有的键值对
- 遍历所有的value(不常用)
-
遍历所有的key
Set keySet()
将当前Map中所有的key以一个Set集合形式返回。遍历该集合等于遍历所有的key
示例:
Set<String> keySet = map.keySet();
for(String key:keySet) {
System.out.println(key);
}
- 遍历所有的键值对(大容量下推荐使用这种方式)
Set entrySet()
将当前Map中一组键值对以一个 Entry实例 存入Set集合,并将该集合返回
java.util.Map.Entry的每一个实例用于表示Map中的一组键值对
示例:
Set<Entry<String, Integer>> entrySet = map.entrySet();
System.out.println(entrySet); // [物理=33, 数学=22, 语文=99, 英语=55]
for(Entry<String, Integer> e : entrySet) {
String key = e.getKey();
Integer value = e.getValue();
System.out.println(key+":"+value);
}
- 遍历所有value,但不能遍历key
Collection values()
示例:
Collection<Integer> values = map.values();
for(Integer value : map.values()) {
System.out.println(value);
}