Java中的数组和List

一.数组Array

1.数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单
2.声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。
3. 数组只能存放类型一样的数据(基本类型/引用类型)

 

二.集合Collection
1. JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。但是集合可以存放不同类型的引用类型,因为存入集合的元素都被转化成了Object类型,之后再引用集合中的类型需要强制类型转换,这就导致了集合的类型不安全,以及类型转化的性能损耗
三.List (列表)是接口,与Set(集)一起继承了Collection接口, 请注意,Map没有继承Collection接口,Map提供key到value的映射。 
线性是一种逻辑结构,数据结构中的除去首尾元素外,其他元素都有唯一的前驱和后继。

1. Set和List的区别:
List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)


2. List有三个实现类:ArrayList LinkedList Vector
2.1 ArrayList底层是以数组实现的。
2.2 LinkedList是双向链表实现,适合于经常进行增删操作,但是查询和修改效率没ArrayList、Vector快。
2.3 Vector与ArrayList类似,也是数组实现,但是他是同步的,是线程安全的,不会有并发产生的问题,但是效率要低于ArrayList。

posted @   天马流欣  阅读(5313)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示