java.util.Map接口
Map是一个很常用的数据结构,体现的样子是一个多行两列的表格。
其中左列叫做key,右列叫做value.
Map总是根据key来获取value。
最常用的实现类:java.util.HashMap 散列表,当今查询速度最快的数据结构
Map<String,Integer> map = new HashMap<>();
/
V put(K k,V v)
向Map中存入一组键值对
Map有一个要求,key不允许重复(equals比较)。如果使用已有的key
保存新的value时则是替换value操作。因此put方法定义了返回值,
当有value被替换时会返回被替换的value。如果key不存在那么返回
值也为null(放进去时没有value被替换)
/
Integer num = map.put("语文",99);
map.put("数学",98);
map.put("英语",97);
num = map.put("语文",88);//原来的99会被替换
/
V get(Object key)
根据给定的key获取对应的value。如果给定的key在Map中不存在则
返回值为null
/
num = map.get("数学");
int size = map.size();
/
V remove(Object key)
删除给定的key所对应的键值对。返回值为该key对应的value
/
num = map.remove("数学");
/
void clear()
清空Map
/
map.clear();
Map的遍历
Map提供了三种遍历方式:
1:遍历所有的key
2:遍历每一组键值对
3:遍历所有的value(相对不常用)
Map<String,Integer> map = new HashMap<>();
/
Set<K> keySet()
将当前Map中所有的key以一个Set集合形式返回。遍历该集合等同于
遍历Map中所有的key
/
Set<String> keySet = map.keySet();
for(String key : keySet){
System.out.println("key:"+key);
}
/
遍历每一组键值对
Set<Entry> entrySet()
将当前Map中的每一组键值对(若干Entry实例)以一个Set集合形式返回
java.util.Map.Entry
该类的每一个实例用于表示Map中的一组键值对
/
Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
for(Map.Entry<String,Integer> e:entrySet){
String key = e.getKey();
Integer value = e.getValue();
System.out.println(key+":"+value);
}
/
Collection<V> values()
将当前Map中的所有value以一个集合形式返回
/
Collection<Integer> values = map.values();
for(Integer value :values){
System.out.println("value:"+value);
}