系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、动态数组
- 二、使用步骤
- 总结
前言
数据结构:
逻辑结构是针对程序员的角度来说的
物理结构是针对程序员如何实现这个逻辑结构的角度来说的
一、动态数组
物理结构:数组
逻辑结构:动态数组
对于使用者来说,可以扩容,自动记录有效的元素个数
MyArrayList:
MyArrayList我们自己设计的一种数据结构,一种逻辑结构,当别人用我这个MyArrayList的对象时,就是一个容器对象
二、使用步骤
我们要它具备什么能力,那么就需要给它添加方法
然后使用者在使用的时候就可以不断的往里面加了
可以继续优化
使用者的调用如下:
由于我们多次使用到了这个方法,所以我们按下快捷键Alt+shift+M,可以实现快速操作,将该方法提取出来
然后测试就行了
效果如下:
删除某个位置的元素
src:源数组
srcPos:源数组要复制的起始位置
dest:目标数组
destPos:目标数组复制的起始位置
length:复制的长度
调用,然后看效果
如果是null怎么处理,优化后的代码
运行后的效果如下:
如果删除某个元素,但是我们不知道下标,如果有重复的,我们只删除第一个,怎么实现
如果要替换某个元素,怎么写?
总结
1、大量使用到了System.arraycopy()等方法,需要深刻理解
2、自己写一遍,有助于看懂源代码