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

转载于:https://www.cnblogs.com/pyobbiwitwsai/p/9391969.html

数组元素的查找,添加,修改,删除相关推荐

  1. CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除

    CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...

  2. wordpress怎么修改html,WordPress后台编辑器HTML模式界面中添加修改删除按钮

    在WordPress编辑器HTML模式界面中添加 按钮一文中,我大致介绍了怎么在后台添加一些自定义的按钮,本文则更为详细全面的对wordpress后台编辑器HTML模式下的按钮自定义进行详解,以让开发 ...

  3. asp.net 对xml文件的读写,添加,修改,删除操作

    asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.Componen ...

  4. 如何动态添加修改删除定时任务

    如何动态添加修改删除定时任务 (1)思路说明: (a)首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. (b)ThreadP ...

  5. iReport 5.添加修改删除jdbc

    Jaspersoft iReport Designer 5.1.0       启动的时候以前的数据源jdbc找不到,报错:classnotfound:oracle.jdbc.driver.Oracl ...

  6. Jzxx.oj:4068: 数组元素的查找新

    戳这看系统原题 4068: 数组元素的查找新 时间限制: 1.000 Sec 内存限制: 128 MB 题目描述 给你m个整数,查找其中有无值为x的数,输出x一共有几个 输入 第一行一个整数m:数的个 ...

  7. Chrome浏览器设置header请求 响应头 使用 Chrome ModHeader插件,添加/修改/删除HTTP请求标头和响应标头

    ModHeader,是一款可以添加/修改/删除请求标头和响应标头的浏览器插件 ModHeader插件功能 ModHeader插件支持添加/修改/删除请求标头和响应标头,并可以启用基于URL /资源类型 ...

  8. VC6.0 MFC 列表框 列表控件 添加 修改 删除

    VC6.0 MFC 列表框 列表控件 添加 修改 删除 写在前面:列表框是很常用,并且很重要的一个控件,那么接下来,就跟随我的脚步,去探索它的奥秘吧! 一.未卜先知 1.编译运行后,点击"学 ...

  9. es修改索引java_Elasticsearch添加修改删除索引文档案例分享

    本文介绍如何采用bboss es添加/修改/删除/批量删除elasticsearch索引文档,直接看代码. 添加/修改文档 TAgentInfo agentInfo = new TAgentInfo( ...

最新文章

  1. php 使用压缩css文件,PHP-使用GZIP压缩静态CSS文件
  2. c语言单链表_突破C语言难点之单链表?一绘图即可
  3. 别人25岁就拥有了自己的事业,我30岁还在打工
  4. 三大电信运营商携号转网数据_携号转网数据出炉!转出移动最多,近五成转入电信...
  5. Java 已老矣,生态却依旧!
  6. JWT的API鉴权,基于拦截器的token与鉴权
  7. 《Android Framework-跨进程通信高级实战课》笔记
  8. 跨境电商SaaS会成为一门大生意吗?
  9. html embed自动播放,embed嵌入多个优酷视频并自动播放
  10. react-app-rewired 修改 react 项目默认端口号
  11. (转载)深入了解iOS中的OOM(低内存崩溃)
  12. python实现淘宝自动登录秒杀功能
  13. 有没有python搜题_python搜题公众号
  14. pyqt创建窗口没有句柄_史上最强之《Pyqt》写游戏
  15. HDU 2542 树上战争
  16. csharp base64加密java解密_C#自定义基于Base64的加密解密类
  17. Switch分销技术解读
  18. 管理类联考历年英语小作文范文
  19. 手机怎样新建PDF文件?
  20. 智能工厂内部层次划分以及数采方式详解

热门文章

  1. 安装了多个php版本,如何编译扩展
  2. Android:手把手教你打造可缩放移动的ImageView(下)
  3. jQuery插件编写,
  4. 开发者测试android studio 试手
  5. shell脚本定义日志输出函数
  6. 分布式数据库中间件的实现原理介绍四:平滑扩容
  7. PowerShell远程连接到Windows
  8. EF实体部分更新的问题
  9. Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory Android
  10. U盘安装linux后无法引导