数组元素的查找,添加,修改,删除
数组元素查找:
易错点: 在循环数组 , 进行if 条件判断时, 过早地下结论
某一次比较的失败, 不能说明 整个数组的后续其他元素 也不匹配
只有 所有元素循环完后, 仍 不匹配, 才能 说明 数组中 不存在某个值的元素
数组元素添加 :
向数组的后方添加 新数据 , 保证 null元素都集中在数组的末尾
重点: 寻找 新添加元素 要存放的 下标的位置 ==> 数组中 从前向后, 第一个 值为 null的位置
掌握 一次运行只 添加一个值即可, 循环多次添加 了解即可
数组元素修改:
基于元素查询, 给查询到的 元素 赋新的值即可
数组元素的删除:
(1) 找到要删除的元素 (if判断, equals比对)
(2) 记录下 所删除元素的 下标值
(3) 将删除元素 之后的所有元素 向前 平移 , 填充被删除元素, 避免 数组前部 出现 null元素与非空元素 穿插交错
难点: 不在于删除, 而在于 删除元素后的 数组元素整理 (向前平移 )
关于 数组多个元素统一向前 移位 :
注意顺序 : 先移动 移动方向上 最前方的 那个元素 ,避免值被覆盖丢失
难点2: 所删除元素 之后的所有元素 在向前移位时, 注意 循环控制变量的 范围, 避免下标越界(涉及到i+1 或i-1)
关于删除元素的 方案演化(主要是删除后的移位):
(1) 从 删除位置 到 数组末尾元素, 整体向前 错一位(移位)
(2) 考虑到 数组 内, 最后一个 非空元素 是否能被清空的问题
1) 如果 数组 删除元素之前 未满, 末尾有 null元素, 则 数组的 最后一个非空元素 可以借助于 末尾的null元素的移位,顺带实现赋null
2) 如果 数组删除元素之前 已满, 则 最后一个非空元素 在向前平移后 将会出现两个值 , 此时需要 手动将其 赋null
(3) 考虑 将 移位的 循环范围 进一步 缩小 (主要是 后边界的 缩小 )
将 循环的 后边界调整为 最后一个 非空元素的 下标
方案(2)中的 1) 不再可行 , 统一采用 手动 为 最后一个 非空元素 赋 null