【Java】Map 介绍

概念

Map 集合类用于存储键值对,其中每个键映射到一个值。

常见的接口和方法

方法 功能
get(Object key) 返回与指定键关联的值
put(Object key, Object value) 将指定值与指定键相关联
containsKey(Object key) 如果 Map 包含指定键的映射,则返回 true
containsValue(Object value) 如果 Map 将一个或多个键映射到指定值,则返回 true
keySet() 返回 Map 的键 的 Set,可以用 foreach 语句遍历
··· ···

Map 的基本实现

如果没有其他的限制,HashMap 应该成为你的默认选择,因为它对速度进行了优化,其他实现强调了其他的特性,因此都不如 HashMap 快。

实现 介绍
HashMap Map 基于散列表的实现(它取代了Hashtable)。插入和查询“键值对”的开销是固定的。可以通过构造器设置容量和负载因子,以调整容器的性能。
LinkedHashMap 类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,或者是最近最少使用(LRU)的次序。只比 HashMap 慢一点,而在迭代访问时反而更快,因为它使用链表维护内部次序。
TreeMap 基于红黑树的实现。查看“键”或“键值对”时,它们会被排序(次序由 cmparable 或 Comparator 决定)。TreeMap的特点在于,所得到的结果是经过排序的。TreeMap是唯一带有 subMap() 方法的 Map,它可以返回一个子树。
WeakHashMap 弱键(weak key)映射,允许释放映射所指向的对象;这是为解决某类特殊问题而设计的。如果映射之外没有引用指向某个“键”,则此“键”可以被垃圾收集器回收。
ConcurrentHashMap 一种线程安全的Map,它不涉及同步加锁。
IdentityHashMap 使用 == 代替 equals() 对“键”进行比较的散列映射。专为解决特殊问题而设计的。

你可能感兴趣的:(【Java】Map 介绍)