Java 集合资料整理:HashMap+List 集合 +Map 集合 +Collection+ 面试题 源码笔记

Java 集合思维导图


Java 集合源码笔记

笔记是全程手写出来的,希望大家拿到笔记后别丢进收藏夹吃灰!

领取方式:转发关注,然后添加微信:java9610 备注暗号 牛客 免费领取。

一、学习指南

1、Java 集合学习指南

  • 1.1 学习一项技术之前,必须知道为什么要学它!

  • 1.2 如何入门学习 Java 集合

  • 1.3 集合进阶与面试



二、Collection

1、集合(Collection)介绍

  • 1.1 为什么需要 Collection

  • 1.2 数组和集合的区别

  • 1.3Collection 的由来与功能

2、迭代器(Iterator)介绍

3、List 集合介绍

  • 3.1List 集合常用子类

4、Set 集合介绍

  • 4.1Set 集合常用子类



三、List 集合

1、ArrayList 解析

  • 1.1 构造方法

  • 1.2Add 方法

  • 1.3 get 方法

  • 1.4 set 方法

  • 1.5remove 方法

  • 1.6 细节再说明

2、Vector 与 ArrayList 区别

3、LinkedList 解析

  • 3.1 构造方法

  • 3.2add 方法

  • 3.3remove 方法

  • 3.4get 方法

  • 3.5set 方法

4、List 集合总结



四、Map 集合

1、Map 介绍

  • 1.1 为什么需要 Map

  • 1.2Map 与 Collection 的区别

  • 1.3Map 的功能

2、散列表介绍

  • 2.1 散列表工作原理

3、红黑树介绍

  • 3.1 回顾二叉查找树

  • 3.2 知新 2-3 树

  • 3.3 从 2-3 树到红黑树

  • 3.4 红黑树基础知识



五、HashMap

1、HashMap 剖析

  • 1.1HashMap 构造方法

  • 1.2put 方法

  • 1.3get 方法

  • 1.4remove 方法

2、HashMap 与 Hashtable 对比

3、HashMap 总结



六、LinkedHashMap

1、LinkedHashMap

  • 1.1LinkedHashMap 的域

  • 1.2LinkedHashMap 重写的方法

  • 1.3 构造方法

  • 1.4put 方法

  • 1.5get 方法

  • 1.6remove 方法

  • 1.7 遍历的方法

2、LinkedHashMap 总结



七、TreeMap

1、TreeMap 剖析

  • 1.1TreeMap 的域

  • 1.2TreeMap 构造方法

  • 1.3put 方法

  • 1.4get 方法

  • 1.5remove 方法

  • 1.6 遍历方法

2、TreeMap 总结


八、ConcurrentHashMap

1、ConCurrentHashMap 剖析

  • 1.1 初识 ConCurrentHashMap

  • 1.2JDK1.7 底层实现

  • 1.3 有了 Hashtable 为啥需要 ConCurrentHashMap

  • 1.4CAS 算法和 volatile 简单介绍

  • 1.5ConCurrentHashMap 域

  • 1.6ConCurrentHashMap 构造方法

  • 1.7put 方法

  • 1.8get 方法

2、ConcurrentHashMap 总结



九、Set

  • 1、HashSet 剖析

  • 2、TreeSet 剖析

  • 3、LinkedHashSet 剖析

  • 4、Set 集合总结



十、CopyOnWriteArrayList

1、Vector 和 SynchronizedList

  • 1.1 回顾线程安全的 Vector 和 SynchronizedList

  • 1.2Vector 和 SynchronizedList 可能会出现的问题

2、CopyOnWriteArrayList(Set)介绍

  • 2.1CopyOnWriteArrayList 实现原理


十一、Java 集合面试题

  • 1、ArrayList 和 Vector 的区别

  • 2、HashMap 和 Hashtable 的区别

  • 3、List 和 Map 的区别

  • 4、Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是 equals()?

  • 5、Collection 和 Collections 的区别

  • 6、说出 ArrayList,LinkedList 的存储性能和特性

  • 7、Enumeration 和 Iterator 接口的区别

  • 8、ListIterator 有什么特点

  • 9、并发集合类是什么?

  • 10、Java 中 HashMap 的 key 值要是为类对象则该类需要满足什么条件?

  • 11、与 Java 集合框架相关的有哪些最好的实践

  • 12、ArrayList 集合加入 1 万条数据,应该怎么提高效率


全部评论

相关推荐

2025-12-22 16:31
已编辑
桂林电子科技大学 Python
很奥的前端仔:如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞 评论 收藏
分享
头像
01-22 10:36
已编辑
牛客运营
活动规则:你可以使用任何AI工具,生成牛客娘表情包,发送你的生成提示词+图片至本贴评论区,并将无水印原图发送至微信群。活动奖励:1、每张 可爱的牛客娘表情包,可获得 10牛币奖励(每人上限100张) ~2、点赞量最高的前xx个评论,送牛客娘马克杯,(每25个评论,赠送一个马克杯,最多赠送20个)牛客娘表情包交流群:生成示例: 这是牛客娘的形象,帮我用牛客娘的形象画一些ACM算法竞赛相关的表情包 需要的表情包有: 摸头 (安慰) 呵呵(冷笑的呵呵) 牛魔 牛啤(左手比大拇指,右手拿着啤酒) 这次一定 比心 不许TD 要给他迎头痛击 设计要求: 1.统一使用萌系风格。 2.表情生动和肢体动作丰富、...
Xuan2333:没错没错就是我,牛客娘表情包的创作者,大家都可以自用哒awa (第5张“按住牛客娘开始思索”出自我的世界里的机械动力模组,我做这个表情包可是花了我1个多小时的时间啊qwq) 最后附上所有用过的素材图,希望大家喜欢awa wow 将图片中的人物改成两手托腮,只显示头部照片,眼睛为星星眼,表情开心,并在下方附上文字“wow” Ciallo 将第二张图的人物做出第一张图的姿势并且要在身体各处还有五官和动作完全一致,不要改背景,高分辨率,最佳质量,并在下方加上和图片相符的文字“Ciallo!” 说不出话 生成这个任务面无表情,一脸犹豫,嘴角下垂,双手交叉在胸前,在中间加上一个带有一条斜杠的麦克风的表示闭麦的符号,并且在下面配上文字“说不出话” 按住牛客娘开始思索 将第二张图的人物进行修改,要求是有一只手按在人物的头上,人物的眼神灵动,手略有着急的轻微摆起,头部微微抬起,并将第一张图放在第二张图的下方,高品质,把这张图的下方的黑色部分加上文字“按住牛客娘开始思索”,字体与图片里展示的“牛客娘”这三个字的字体相一致 我也要WA吗 将第一张图的人物的头发,脸部和衣服改成第二张图的人物的,眼睛保持不变,脸上的汗保持不变,头发的长度修改为和图片的一致,脸上不要有红晕,眼睛里不要有高光,眼睛里只要纯灰色查看图片
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务