–>线程不安全
底层是由哈希表实现的
hashmap去重–>根据key去重,自定义引用数据类型数据:hashCode()和equals()
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。
为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。
和HashMap类似 -->线程安全的
基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
底层是由红黑树实现的
TreeMap去重–>根据key去重,自定义引用数据类型数据:内部|外部比较器
选择:如果想要根据key做某种规则的排序选择TreeMap,否则选择HashMap
clear()
从此映射中移除所有映射关系。
clone()
返回此 HashMap 实例的浅表副本:并不复制键和值本身。
containsKey(Object key)
如果此映射包含对于指定键的映射关系,则返回 true。
containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
Set
返回此映射所包含的映射关系的 Set 视图。
get(Object key)
返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
boolean isEmpty()
如果此映射不包含键-值映射关系,则返回 true。
Set keySet()
返回此映射中所包含的键的 Set 视图。
put(K key, V value)
在此映射中关联指定值与指定键。
putAll(Map extends K,? extends V> m)
将指定映射的所有映射关系复制到此映射中,这些映射关系将替换此映射目前针对指定映射中所有键的所有映射关系。
remove(Object key)
从此映射中移除指定键的映射关系(如果存在)。
size()
返回此映射中的键-值映射关系数。
Collection values()
返回此映射所包含的值的 Collection 视图。