优化是一种习惯●出发点是"站在靠近临界"的地方


1、举例:数组的动态插入、删除

  • 站在临界值的角度考虑

    <font color=red>这个临界值,不一定是最后一个元素</font>

图片.png


  • 删除某个元素:
图片.png

第一种做法:取到最大值:i=size-1时,表达式为:elements[size-2]=elements[size-1]

第二种做法:取到最大值:i=size-1时,表达式为:elements[size-1]=elements[size] 明显不符合设计了,例如当前数组有size个元素,那么最后一个元素应该是 elements[size-1]

其实越界也是思考角度,站在被覆盖角度的话,那么临界的最后一个被覆盖元素,是当前数组的倒数第二个元素 elements[size-2] 呀

第二种做法:应该修改一下循环判断条件才正确:for(int i = index; i < size-1; i++)

第一种做法:是站在覆盖者角度,也站在了靠近<font color=red>'临界值'(靠近最后一个元素)</font>的角度,不容易出错,推荐



  • 添加某个元素:
图片.png

在添加元素这里:做法1和做法2都没有问题,不过建议,

<font color=red>统一习惯:出发点是"站在靠近临界"的地方</font>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是集合 集合框架:用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合...
    Java__JJ阅读 1,917评论 0 1
  • 单列集合 (Collection) 单列集合类的根接口,用于:存储一系列符合某种规则的元素。 List 集合 有序...
    CodeYang阅读 3,056评论 0 2
  • ====DOM==================================================...
    悦动燃爆阅读 1,560评论 0 0
  • 分析常用集合的底层的原理:ArrayList、Vector、LinckedList、HashMap、HashSet...
    仕明同学阅读 6,544评论 1 13
  • 转载自:https://halfrost.com/go_map_chapter_one/ https://half...
    HuJay阅读 11,352评论 1 5