目录
2.1 从 ArrayList 集合的底层原理来了解具有该特性的原因:
3.1 从 LinkedList 集合的底层原理来了解具有该特性的原因:
1.0 List 类的说明
在 Java 中,List 类是 Java 集合框架中的一种接口,它是一种有序的、可重复的集合,用于存储多个元素。List 接口是 Collection 接口的子接口,它定义了一系列方法来操作和访问列表中的元素,所以 List 接口继承了 Collection 接口的方法。
1.1 List 类的常用方法
以代码的形式来介绍这些方法:
1.2 List 集合的遍历方式
除了 List 系列集合继承 Collcetion类的三个遍历方式之外,还支持普通的带索引的 for 循环。
由于 List 系列集合支持支持有序的,所以可以使用普通带索引的 for 循环。
代码如下:
2.0 ArrayList 集合的底层原理
由于 ArrayList 是 List 的实现类,所以 ArrayList 特性与 List 接口是一致的,有序、可重复、有索引的特性。
2.1 从 ArrayList 集合的底层原理来了解具有该特性的原因:
ArrayList 集合是基于数组实现的,简单来说,ArrayList 集合就是一个可变长度的数组。因此可以解释为什么 ArrayList 集合具有有序、可重复、有索引的特性,是因为数组都具备这些特性。
创建的 ArrayList 集合的对象在底层的过程:
2.2 ArrayList 集合的优缺点
因为 ArrayList 是基于数组实现的,所以可以根据数组的特性来了解该集合的优缺点,由于数组是支持索引查找元素的,所以该集合的优点是很明显,查找元素特别的快。但是对于增添、删除、修改的操作来说是很慢的。
所以 ArrayList 适合:根据索引查询数据。不适合:频繁对元素进行操作。
3.0 LinkedList 集合的底层原理
由于 LinkedList 是 List 的实现类,所以 LinkedList 特性与 List 接口是一致的,有序、可重复、有索引的特性,但是与 ArrayList 在底层的原理是不一样的。
3.1 从 LinkedList 集合的底层原理来了解具有该特性的原因:
LinkedList 集合是基于双链表实现的。
3.2 LinkedList 集合的优缺点
根据该集合的数据结构为双链表,每查询一个元素是从头或者尾一步一步地去查询的,而不能直接去找到其中的元素,所以查询是很慢的。对于增加、删除、修改元素的速度相对来说是快的。但是有两个节点很特殊,对于头、尾节点无论查询还是增加、删除、修改元素速度都很快的。
所以 LinkedList 集合适合:频繁对元素操作的。不合适:大量的查找元素。
3.3 LinkedList 集合的特有方法
以代码的形式来介绍:
根据 LinkedList 集合的数据结构的特性,其应用场景可以是用设计队列(先进先出,后进后出),还可以用来设计栈(先进后出,后进先出)。