List系列集合

List集合特点

ArrayList、LinekdList :有序,可重复,有索引。

有序:存储和取出的元素顺序一致

有索引:可以通过索引操作元素

可重复:存储的元素可以重复

特有API

List集合的遍历方式小结

迭代器

增强for循环

Lambda表达式

for循环(因为List集合存在索引)

ArrayList集合的底层原理

ArrayList底层是基于数组实现的:根据索引定位元素快,增删需要做元素的移位操作。

第一次创建集合并添加第一个元素的时候,在底层创建一个默认长度为10的数组。

示例:

List<String> list = new ArrayList<>();

list.add("a");

List集合存储的元素要超过容量怎么办?

新建一个数组,大小为原来的1.5倍,把原来的数据拷贝过来再存新元素。

LinkedList集合的底层原理

LinkedList的特点:

底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首尾操作的特有API。

LinkedList集合的特有功能:

总结

1、List系列集合特点

ArrayList、LinekdList :有序,可重复,有索引。

2、List的实现类的底层原理

ArrayList底层是基于数组实现的,根据查询元素快,增删相对慢。

LinkedList底层基于双链表实现的,查询元素慢,增删首尾元素是非常快的。

相关推荐
方也_arkling5 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮5 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei115 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1125 小时前
web-第一次课后作业
java·开发语言·idea
秋95 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本6 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁6 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
basketball6167 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
JAVA面经实录9178 小时前
MyBatis面试题库
java·mybatis
小江的记录本8 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试