详解 Java Map接口

1 概述

  • Map<K, V>是一个顶级接口,包含了一个内部公共接口Map.Entry<K, V>.java.util包下有一个子接口SortedMap<K,V>.
  • Map 的作用是维护一系列 key-value 的映射关系
  • Map.Entry<K, V> 只维护一个key-value关系
  • 一个Map中不允许存在重复的Key, 每个key最多只能对应一个value,即key-value是一对一的关系
  • Map接口提供了三种Collection视图,Set, Collection 和 Set<Map.Entry<K, V>>
  • 使用一个类作为Map的Key值时需要格外小心,其equals方法可能会影响Map的操作结果
    image.png

2 接口方法及其功能

2.1 Map<K, V

  • int size() 返回Map当前包含的k-v对的数量
  • boolean isEmpty() 当前Map没有存储k-v时,返回true
  • containsKey(Object key) 当Map存在该key值时,返回true
  • boolean containsValue(Object value) 当Map至少存在一个该value值时,返回true
  • V get(Object key) 返回 key 在Map中对应的 value,如果不存在该key,返回null
  • V put(K key, V value) 添加一对key-value,如果Map中已存在相应的key,替代并返回原value, 若不存在则返回null
  • V remove(Object key) 移除给定key所对应的key-value,并返回该value,如果不存在该key,返回null
  • void putAll(Map<? extends K, ? extends V> m) 添加所有给定map的key-value值
  • void clear() 清空Map, 执行完后是一个empty map
  • Set keySet() 返回包含所有key值的set
  • Collection values() 返回一个包含所有value值得collection
  • Set<Map.Entry<K, V>> entrySet() 返回一个Map.Entry<K, V>的Set集合

2.2 Map.Entry<K, V>

  • K getKey() 返回key值
  • V getValue() 返回value值
  • V setValue(V value) 使用给定value替换并返回原value
  • 没有setKey()方法,说明初始化后key是不可变的

2.3 SortedMap<K, V>

  • Comparator<? super K> comparator() 返回对维护key排序所使用的Comparator(排序规则)
  • SortedMap<K,V> subMap(K fromKey, K toKey) 返回一个子SortedMap,包含给定范围的key-value对
  • SortedMap<K,V> headMap(K toKey) 返回一个子SortedMap,包含给定key之前的所有key-value对
  • SortedMap<K,V> tailMap(K fromKey) 返回一个子SortedMap,包含给定key之后的所有key-value对
  • K firstKey() 返回第一个 key
  • K lastKey() 返回最后一个key
  • Set keySet() 返回一个包含所有key并且迭代器遍历时为升序的set
  • Collection values() 返回一个包含所有value的collection,并且迭代时按key的升序
  • Set<Map.Entry<K, V>> entrySet() 返回一个包含所有Entry的set,并且迭代时按key升序迭代
阅读(43)
评论(0)
updated@2020-11-02
评论区
目录