Java集合和数组

集合和数组是Java中两种数据存储结构。数组是固定长度的相同类型数据的序列,适合查询操作,但插入、删除效率低。集合则可存放不同类型的元素,更加灵活,但牺牲了查询速度。数组查询速度快于链表,因其内存地址连续,寻址操作少。
摘要由CSDN通过智能技术生成

什么是集合和数组呢

集合和数组都是对多个数据进行存储操作的及格,简称Java容器

它们两个有什么区别呢?集合可以存放不同类型的数据,而数组只可以存放定义好的数据类型的数据。

数组的特点

数组是具有相同的数据类型按一定次序排序的一组变量的组合体。

对于静态数组来说,一旦初始化以后,长度就确定了。只能操作定义好的数据类型的数据,比如String[],int[]。

数组的缺点

对于添加删除插入等操作,最坏的结果是O(N),效率非常低,因为数组在内存中的地址是连续相邻的,每次删除元素,都要移动改元素后面的位置。

复习题:为什么数组比链表查询的速度更快?

从内存分配来看,数组是连续的内存地址,而链表的节点是分散在堆空间里的。

从寻址操作次数来看,数组只需知道基地址和要查询的下标索引,加上数组的数据类型的元素大小,根据 [基地址+元素大小*k] 就能找到第k+1个元素的地址 , 链表要获得第k个元素,首先要在其第k-1个元素寻找到其next指针偏移,再将next指针作为地址获得值,这样就要从第一个元素找起,多了多步寻址操作,当数据量大且其它操作较少时,这就有差距了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值