文章目录
Map
常用方法
Map map = new HashMap(); //创建map
1、添加
map.put("1","小说")
putAll(Map<? extends K,? extends V> m) //从指定映射中将所有映射关系复制到此映射中(可选操作)。
2、删除
map.remove("1") //删除指定key的键值对,返回被删除的key关联的value,不存在返回null
map.remove("1","小说") //删除指定的键值对,成功返回true
map.clear() //删除map中的所有键值对
3、计数
map.size() //返回map中键值对的个数
4、判断
map.isEmpty() //判断是否为空
map.containsKey("1") //判断Map中是否包含指定的Key
map.containsValue("小说"); //判断Map中是否包含指定的Value
5、取值
map.get("1") //返回指定Key对应的Value,不存在则返回null
Collection set = map.entrySet() //返回Map中键值对所组成的Set集合,集合元素是Map.Entry(Map的内部类)对象
Collection set = map.keySet() //返回Map中的key的Set集合
Collection set = mat.values() //返回的是Map里所有的value组成的Collection
遍历Map的方式
第一种方式:使用keySet:
将Map转成Set集合(keySet()),通过Set的迭代器取出Set集合中的每一个元素(Iterator)就是Map集合中的所有的键,再通过get方法获取对应的值。
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "aaaa");
map.put(2, "bbbb");
map.put(3, "cccc");
System.out.println(map);
//
// 获取方法:
// 第一种方式: 使用keySet
// 需要分别获取key和value,没有面向对象的思想
// Set<K> keySet() 返回所有的key对象的Set集合
Set<Integer> ks = map.keySet();
Iterator<Integer> it = ks.iterator();
while (it.hasNext()) {
Integer key = it.next();
String value = map.get(key);
System.out.println("key=" + key + " value=" + value);
}
第二种方式: 通过values 获取所有值,不能获取到key对象:
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "aaaa");
map.put(2, "bbbb");
map.put(3, "cccc");
第二种方式: 通过values 获取所有值,不能获取到key对象
Collection<V> values()
Collection<String> vs = map.values();
Iterator<String> it = vs.iterator();
while (it.hasNext()) {
String value = it.next();
System.out.println(" value=" + value);
}
第三种方式: Map.Entry
public static interface Map.Entry<K,V> 通过Map中的entrySet()方法获取存放Map.Entry<K,V>对象的Set集合。
Set<Map.Entry<K,V>> entrySet() 面向对象的思想将map集合中的键和值映射关系打包为一个对象,就是Map.Entry,将该对象存入Set集合,Map.Entry是一个对象,那么该对象具备的getKey,getValue获得键和值。
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "aaaa");
map.put(2, "bbbb");
map.put(3, "cccc");
// 第三种方式: Map.Entry对象 推荐使用 重点
// Set<Map.Entry<K,V>> entrySet()
// 返回的Map.Entry对象的Set集合 Map.Entry包含了key和value对象
Set<Map.Entry<Integer, String>> es = map.entrySet();
Iterator<Map.Entry<Integer, String>> it = es.iterator();
while (it.hasNext()) {
//返回的是封装了key和value对象的Map.Entry对象
Map.Entry<Integer, String> en = it.next();
// 获取Map.Entry对象中封装的key和value对象
Integer key = en.getKey();
String value = en.getValue();
System.out.println("key=" + key + " value=" + value);
}
原文链接
黑色背景
#小结