数组元素的查找,添加,修改,删除

数组元素查找:
 
 易错点: 在循环数组 , 进行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

posted @ 2018-07-30 18:02  勤劳的猪猪  阅读(1187)  评论(0编辑  收藏  举报