Java集合和Map详解:继承体系、实现原理和应用场景
版权申诉
151 浏览量
更新于2024-07-02
收藏 12.58MB DOCX 举报
JavaEE面试宝典共228页
Java基础知识点:
1.1 Collection和Map的继承体系
* Collection是Java中集合框架的根接口,提供了对集合的基本操作,如add、remove、contains等。
* Map是Java中映射框架的根接口,提供了对键值对的映射操作,如put、get、containsKey等。
* Collection和Map的继承体系中,ArrayList和LinkedList是Collection的实现类,HashMap是Map的实现类。
1.1.1 Collection接口
* Collection接口提供了对集合的基本操作,如add、remove、contains等。
* Collection接口的继承体系中,ArrayList和LinkedList是Collection的实现类。
1.1.2 Map接口
* Map接口提供了对键值对的映射操作,如put、get、containsKey等。
* Map接口的继承体系中,HashMap是Map的实现类。
1.1.3 ArrayList和LinkedList的区别
* ArrayList和LinkedList都是Collection接口的实现类,但它们有不同的特点。
* ArrayList的特点:查询速度很快,但是增删稍慢。线程不同步。删除一个元素后,该元素后面的所有元素前移。
* LinkedList的特点:增删速度很快,查询稍慢。线程不同步。
1.1.4 ArrayList底层实现
* ArrayList底层的实现就是一个数组(固定大小),当数组长度不够用的时候就会重新开辟一个新的数组,然后将原来的数据拷贝到新的数组内。
1.1.5 HashMap底层实现
* HashMap底层就是一个数组结构(Entry<K,V>[]table),可以看出,Entry就是数组中的元素,每个Map.Entry其实就是一个key-value对,它持有一个指向下一个元素的引用,这就构成了链表。
1.1.6 HashMap的工作原理
* HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。
* 当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。
* 当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。
* HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。
1.1.7 List、Map、Set三个接口的特点
* List接口提供了对顺序集合的操作,如add、remove、get等。
* Map接口提供了对键值对的映射操作,如put、get、containsKey等。
* Set接口提供了对无序集合的操作,如add、remove、contains等。
Collection和Map是Java中集合框架的核心接口,ArrayList和LinkedList是Collection的实现类,HashMap是Map的实现类。了解它们的继承体系、特点和工作原理是非常重要的。
2019-03-12 上传
2022-07-06 上传
2021-09-30 上传
2021-12-18 上传
2021-07-18 上传
2022-07-01 上传
2022-06-05 上传
2022-10-28 上传
悠闲饭团
- 粉丝: 204
- 资源: 3416
最新资源
- Sensors:该存储库包含不同传感器的简单程序
- Excel表格+Word文档各类各行业模板-迷你小台历.zip
- ser316-spring2021-B-lclindbe:作业2-单元测试
- iec61131-gaskessel:燃气锅炉的模拟调试
- 这是我学习mysql 以及 Oracle 数据库操作过程中的代码.zip
- 内存提升
- 御剑后台扫描珍藏版.zip
- node-express-mongoose-practice
- 这是一步步学习MySQL的源代码,最后的项目是一个超市管理系统的集合.zip
- kicad-custom-library:我在设计时遇到的一些组件的库
- actions-hooks-mattermost:一个简单的Webhook,用于在Mattermost通道中记录来自GitHub的部署事件
- Disco-2.12.2.zip
- composition-debugger:在合成中设置断点
- 形式验证
- 这是一个前后端分离的小实验项目,代码总量在120行左右,前端文件是在别处下载下来的,适合学完go语言基础后进一步学习.zip
- leetcode:leetcode 在线裁判