写点什么

21《重学 JAVA》-- 集合 (三)

作者:杨鹏Geek
  • 2021 年 12 月 22 日
  • 本文字数:798 字

    阅读完需:约 3 分钟

21《重学JAVA》-- 集合 (三)

一、Map 集合

Map(映射)集合表示一种非常复杂的集合,允许按照某个键来访问元素。Map 集合是由两个集合构 成的,一个是键(key)集合,一个是值(value)集合。键集合是 Set 类型,因此不能有重复的元素。 而值集合是 Collection 类型,可以有重复的元素。Map 集合中的键和值是成对出现的。

Map 操作

1. Map 操作适用于 HashMap 和 HashSet 等。

2. get(Object key):返回指定键所对应的值;如果 Map 集合中不包含该键值对,则返回 null。put(Object key, Object value):指定键值对添加到集合中。

3. remove(Object key):移除键值对。

4. clear():移除 Map 集合中所有键值对。

5. isEmpty():判断 Map 集合中是否有键值对,没有返回 true,有返回 false。

6. containsKey(Object key):判断键集合中是否包含指定元素,包含返回 true,不包含返回 false。containsValue(Object value):判断值集合中是否包含指定元素,包含返回 true,不包含返 回 false。

7. keySet():返回 Map 中的所有键集合,返回值是 Set 类型。

8. values():返回 Map 中的所有值集合,返回值是 Collection 类型。

9. size():返回 Map 集合中键值对数。

二、HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射,实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步而且 HashMap 是无序的,也不会记录插入的顺序。

HashMap 继承 AbstractMap,实现了 Map、Cloneable、Serializable 接口。

三、HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合,允许有 null 值

但是 HashSet 是无序的,也不会记录插入的顺序,它不是线程安全的,如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。

HashSet 继承于 AbstractSet 抽象类,实现了 Set 接口,实现了 Cloneable 接口,得到了 clone()方法,可以实现克隆功能。HashSet 实现了 Serializable 可以被序列化,通过序列化去传输,典型的应用就是 hessian 协议。

 

发布于: 3 小时前阅读数: 5
用户头像

杨鹏Geek

关注

你必须比别人更努力 才能看起来毫不费力! 2019.10.26 加入

码农

评论

发布
暂无评论
21《重学JAVA》-- 集合 (三)