java集合底层分析

 

地址:

https://www.bilibili.com/video/av36579083/?spm_id_from=333.788.videocard.9

 

java集合底层分析分析:

这种虚线意味着是一个接口

这些标红的都是我们很常用的很熟悉的实现类

 

面试的时候必考OOP 面向对象 (封装、继承、多态

这种就是一说呢,大家都知道,但是要谈理解呢,深浅就不一样了

 

接口

继承

继承类

java集合底层分析

通过看源码看到1.7之后的一些新特性

import java.util.ArrayList;
import java.util.List;
List list = new ArrayList();

源码--ArrayList

java集合底层分析

1.7之后接口的新特性:

这个default是1.8的新特性:本来接口中是不能写方法的,接口中一律只能写抽象方法,不能写方法体,这里做了一个小的更新,default这个关键字能够让方法中能够写方法体。就是说原本是抽象方法,但是加了这个关键字,就可以写方法体了。

Iterable.java这个接口主要用来帮助遍历和迭代的

java集合底层分析

java集合底层分析

java集合底层分析

有List和Set

 

java集合底层分析

List下面有一些子实现类,这里主要看

java集合底层分析

java集合底层分析

Hash(语义性很强,指的是哈希码的一种算法/数据结构)

java集合底层分析

这个考的是 基础扎不扎实 数据结构扎不扎实

 

自己实现的MyArrayList.java

java集合底层分析

java集合底层分析

自己实现MyLinkedList.java

java集合底层分析

 

java集合底层分析

java集合底层分析

java集合底层分析

java集合底层分析

ArrayList数组结构:add()会缓慢一点,遍历很快,查数据很快

LinkedList链表结构:add()会很快,遍历慢一点(嵌套循环)