Java:集合的概述,Collection,List,Arraylist、LinkedList、Vector

集合的概述

对象类型的数组

定义一个数组,数组元素的类型是引用数据类型,也就是一个一个的对象。
这种数组称为对象数组,数组中的每个元素其实都是一个对象的地址,而非对象本身

集合的来由

1、对象数组的不足:
无法扩展:数组本身的长度是固定的,一旦创建,就无法修改
结果:每次要添加一个新元素的时候,就需要创建一个新的数组,长度为原来的数组长度+1,将原来数组中的所有元素都拷贝到新数组中,添加自己要添加的那个新元素。
在这里插入图片描述
2、解决:
将对象类型的数组,变成某个类型的私有成员变量
对于数组的各种操作,都封装成公有的方法
如果要添加一个元素,底层还是进行的数组拷贝,不过java开发者把它们封装到一个方法之中,我们可以直接调用方法,也就是底层数组的拷贝调用者感知不到,只能感知到这个类型是一个可以伸缩的容器
还在数组的操作上,增加了很多功能
上面提到的【某个类型】,就是集合

集合和数组的区别

1、共同点:
都是用于存储数据的容器
一大堆零散的变量,不太好进行统一的操作
使用容器的原因,就是希望使用有规律的索引、操作方式,操作那些没有规律的元素
2、不同点:
1、存储内容的不同:
数组既可以存储基本类型,也可以存储引用类型
集合只能存储引用类型,如果需要存储基本类型,其实里面存的是包装类对象
2、存储数量的不同:
数组的长度不可变,一旦确定大小就无法增删
集合的长度可变,是一个可以伸缩的容器
3、方法不同:
数组中只有Object中定义的方法,以及有一个length属性
集合中可以有很多方法

集合的体系结构

1、集合分类:
单列集合:每个元素都是一个单独的个体
双列集合:每个操作都是针对一对数据来进行的,一对数据作为一个单位

Collection

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集合体系:
在这里插入图片描述

List

在这里插入图片描述
在这里插入图片描述

Arraylist

在这里插入图片描述

LinkedList

1、List的一个实现类
2、存储方式:
节点实现,链式存储
不通过物理内存位置的相邻,来表示逻辑顺序的相邻
每个元素都存储在一个节点中,节点除了元素数据本身以外,还需要存储下一个元素的内存地址
3、特点:
查询速度慢:需要根据前面的节点来获取后一个节点的地址,前面所有节点都要访问一遍,节点数量越多,查询速度越慢
增删速度快:增删一个元素,只需要修改新增元素前后的两个节点的引用域即可,与集合本身的元素个数无关。
4、LinkedList的特有方法:
由于在LinkedList中,维护了链表的头和尾节点的对象地址,所以操作头部和尾部非常容易,提供了大量的操作头和尾的方法。
addFirst(Object obj):在头部添加元素
addLast(Object obj):在尾部添加元素
removeFirst():删除头部元素
removeLast():删除尾部元素
getFirst():获取头部元素
getLast():获取尾部元素

Vector

在这里插入图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值