Java集合框架(List)【1】
一:集合概念
对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。
二:集合和数组的区别:
1.数组长度固定,集合长度不固定
2.数组可以存储基本类型和引用类型,集合只能存储引用类型
三:位置:java.util.*;
一:Collection
Collection体系集合![在这里插入图片描述](https://img-blog.csdnimg.cn/20210416180514500.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvZ2VERUNTRE4=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418210320105.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvZ2VERUNTRE4=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418210338447.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvZ2VERUNTRE4=,size_16,color_FFFFFF,t_70)
List子接口
特点:有序、有下标、元素可以重复。
1.ArrayList:
数组结构实现,必须开辟连续空间、查询快、增删除慢;
JDK1.2版本,运行效率快、线程不安全。
源码分析: DEDAULT_CAPACITY=10;默认容量10
【注意:如果没有向集合中添加任何元素时,容量是0
添加一个元素之后,容量是10
每次扩容大小是原来的1.5倍】
elemenData存放元素的数组
size实际的元素个数
add添加元素
2.Vector:
数组结构实现,无须开辟连续空间、查询快、增删除慢;
JDK1.0版本,运行效率慢、线程安全。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210422161007354.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvZ2VERUNTRE4=,size_16,color_FFFFFF,t_70)
3.LinkedLIst:
链表结构实现,增删快,查询慢。
数组结构实现,查询快、增删除慢;
int size;集合的大小
Node first;链表的头节点
Node last;链表的尾节点