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 万条数据,应该怎么提高效率