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


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

  • 相关阅读:
    JVM垃圾回收之三色标记
    负载均衡之LVS与Nginx对比
    浅析虚拟机内存管理模型
    JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比
    JAVA对象分析之偏向锁、轻量级锁、重量级锁升级过程
    全局负载均衡与CDN内容分发
    内存屏障在CPU、JVM、JDK中的实现
    JVM类加载与双亲委派机制被打破
    JVM虚拟机Class类文件研究分析
    Redis分布式锁升级版RedLock及SpringBoot实现
  • 原文地址:https://www.cnblogs.com/pyobbiwitwsai/p/9391969.html
Copyright © 2020-2023  润新知