动态数组
文章平均质量分 74
aaron.锋
这个作者很懒,什么都没留下…
展开
-
架构的角度去思考,写一个java动态数组(下)
上次基本把动态数组的功能封装完了,并完成了测试,但是还涉及一些知识点没有说完,例如:泛型,动态扩容,对象数组,clear,remove,equals,null值。不仅仅说明数据结构与算法,还需要注意一些内部实现的细节。 (一)动态java数组的实现思路 ① 扩容的问题 如果数组目前size=4,4个已经满了,在往里面添加的话,是不是直接拼接到末尾一部分内存进去,所以必须new一个新的数组,new之后返回的数组的地址是随机的。按照常规的做法就是申请一个更大的数组,原来是4个,4个不够用,就申请8个或者10个,原创 2021-08-14 16:50:16 · 127 阅读 · 0 评论 -
架构的角度去思考,写一个java动态数组(中)
上次说了动态数组需要考虑的功能,本次实现下如何实现动态的java数组,分析功能的步骤将一步一步给老铁们展示出来。 动态java数组的实现思路 ① add add方法就是将元素加入到数组最后面,必须清楚一个问题,写的add,最后要写在elements里面,当size等于0时,第一个添加要放入0位置,随着元素的数据增加,size=3的时候,0到2这个位置有东西了,这时在新增加的话,是不是往3这个位置放东西。规律是不是新增其实就是往size上边放东西,写完后,需要对size++,新增了一个元素需要++。默认的数组原创 2021-08-14 16:35:41 · 120 阅读 · 0 评论 -
架构的角度去思考,写一个java动态数组(上)
动态java数组的实现思路 ① 新建一个类DynamicArray ② 考虑下动态数组需要哪些成员变量 /** * 元素的数量 */ private int size; /** * 所有的元素 */ private E[] elements; E在集合中使用,因为集合中存放的是元素 ② 构造方法 一开始指定可以存放多少个元素,通过构造方法,capaticy默认传入容量是多大。在java里面使用私有的常量就是通过static final的方式,java的编码规范常量一定原创 2021-08-14 14:36:06 · 98 阅读 · 0 评论