集合框架体系总览
![]() 学习一个东西的时候,最好是明白为什么要使用这个东西,不要为了用而用,知其然而知其所以然。 集合,故名思议,是用来存储元素的,而数组也同样具有这个功能,那么既然出现了集合,必然是因为「数组的使用存在一定的缺陷」。 上篇文章已经简单提到过,数组一旦被定义,就无法再更改其存储大小。举个例子,假设有一个班级,现在有 50 个学生在这个班里,于是我们定义了一个能够存储 50 个学生信息的数组: 1)如果这个班里面来了 10 个转班生,由于数组的长度固定不变,那么显然这个数组的存储能力无法支持 60 个学生;再比如,这个班里面有 20 个学生退学了,那么这个数组实际上只存了 30 个学生,造成了内存空间浪费。总结来说,「由于数组一旦被定义,就无法更改其长度,所以数组无法动态的适应元素数量的变化」。 2)数组拥有 length 属性,可以通过这个属性查到数组的存储能力也就是数组的长度,但是无法通过一个属性直接获取到数组中实际存储的元素数量。 3)因为「数组在内存中采用连续空间分配的存储方式」,所以我们可以根据下标快速获的取对应的学生信息。比如我们在数组下标为 2 的位置存入了某个学生的学号 111,那显然,直接通过下标 2 就能获取学号 111。但是「如果反过来我们想要查找学号 111 的下标呢」?数组原生是做不到的,这就需要使用各种查找算法了。 4)另外,假如我们想要存储学生的姓名和家庭地址的一一对应信息,数组显然也是做不到的。 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |