加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 编程 > 正文

集合框架体系总览

发布时间:2021-03-28 14:25:40 所属栏目:编程 来源:互联网
导读:学习一个东西的时候,最好是明白为什么要使用这个东西,不要为了用而用,知其然而知其所以然。 集合,故名思议,是用来存储元素的,而数组也同样具有这个功能,那么既然出现了集合,必然是因为「数组的使用存在一定的缺陷」。 上篇文章已经简单提到过,数组



学习一个东西的时候,最好是明白为什么要使用这个东西,不要为了用而用,知其然而知其所以然。

集合,故名思议,是用来存储元素的,而数组也同样具有这个功能,那么既然出现了集合,必然是因为「数组的使用存在一定的缺陷」。

上篇文章已经简单提到过,数组一旦被定义,就无法再更改其存储大小。举个例子,假设有一个班级,现在有 50 个学生在这个班里,于是我们定义了一个能够存储 50 个学生信息的数组:

1)如果这个班里面来了 10 个转班生,由于数组的长度固定不变,那么显然这个数组的存储能力无法支持 60 个学生;再比如,这个班里面有 20 个学生退学了,那么这个数组实际上只存了 30 个学生,造成了内存空间浪费。总结来说,「由于数组一旦被定义,就无法更改其长度,所以数组无法动态的适应元素数量的变化」。

2)数组拥有 length 属性,可以通过这个属性查到数组的存储能力也就是数组的长度,但是无法通过一个属性直接获取到数组中实际存储的元素数量。

3)因为「数组在内存中采用连续空间分配的存储方式」,所以我们可以根据下标快速获的取对应的学生信息。比如我们在数组下标为 2 的位置存入了某个学生的学号 111,那显然,直接通过下标 2 就能获取学号 111。但是「如果反过来我们想要查找学号 111 的下标呢」?数组原生是做不到的,这就需要使用各种查找算法了。

4)另外,假如我们想要存储学生的姓名和家庭地址的一一对应信息,数组显然也是做不到的。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读