HashMap
问题
1. 首先就是HashMap到底是个什么东西
不太了解,让我查查
- HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
- HashMap 实现了 Map 接口,根据键的
- HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
- HashMap是无序的,即不会记录插入的顺序。
- HashMap 继承于AbstractMap,实现了 Map(字典)、Cloneable(可克隆)、java.io.Serializable 接口(什么可序列化之类不太懂,可以查查)。
就以用户的角度来理解:我可以用它来记录数据(无序且不重复的Map),并可以很快的找到我存储的Map数据(时间复杂度O(1))。就象一个字典(通过Key来查Value)。
2. 它有哪些比较常用的功能呢
构造方法摘要
HashMap()
构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity)
构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity, float loadFactor)
构造一个带指定初始容量和加载因子的空 HashMap。
HashMap(Map<? extends K,? extends V> m) (<>里面的是相应的包类型)
构造一个映射关系与指定 Map 相同的新 HashMap。
添加(V就是value的类型)
V put(K key, V value) 在此映射中关联指定值与指定键
删除
V remove(Object key)
获取
V get(Object key) 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
获取映射的数目
int size()
查询
boolean containsKey(Object key)
如果此映射包含对于指定键的映射关系,则返回 true。
boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
移除所有
void clear()
从此映射中移除所有映射关系。
3. 这些功能我目前用到了那些具体用法是啥
4. 我能用这些功能干嘛