1.数组的扩容:因为数组一旦创建其长度不可变,当我们要添加一个数据的时候如果原数组已满,那么我们需要将其扩容。

原理:

代码:

public static void main(String[] args) {// TODO Auto-generated method stub//定义数组,初始数组int[] arr = new int[] {11,22,33};System.out.println("添加数据前" + Arrays.toString(arr));//要添加的数据int dst = 10;//新建一个数组,长度为原数组长度+1int[] brr = new int[arr.length + 1];//将原数组中的数据全部复制到新数组中for (int i = 0; i < arr.length; i ++) {brr[i] = arr[i];}//将要添加的数据放到数组的最后一位brr[brr.length - 1] = dst;//新数组代替原数组arr = brr;System.out.println("添加数据后" + Arrays.toString(arr));}

结果:

2.数组的插入:
将新元素插入到i,那么必须将i,i+1,i+2,…的值向后移动,空出来i的位置,将其插入;那么就需要考虑是否需要扩容了。

代码:

/*** * @param arr       数组* @param index     要插入位置的下标* @param val       插入的值* @param length    数组中有值子数组的长度*/
public static void arrayAdd(int[] arr, int index, int val, int length) {//判断index是否合法if (index < 0 || index > arr.length) {throw new IndexOutOfBoundsException("您插入的位置不对");}else {//判断数组是否已满if (length == arr.length) {//满了就扩容int[] brr = new int[arr.length * 2];for (int i = 0; i < arr.length; i ++) {brr[i] = arr[i];}arr = brr;}//数据向后移动for (int i = length - 1; i >= index; i --) {arr[i + 1] = arr[i];}//插入新数据arr[index] = val;}System.out.println("插入后:" + Arrays.toString(arr));}

3.数组中元素的删除

代码:

/*** * @param arr       数组* @param index     下标* @param length    数组中有值子数组的长度*/public static void arrayDelete(int[] arr, int index, int length) {if (length == index + 1) {arr[index] = 0;}else {for (int i = index; i < arr.length; i++) {arr[i] = arr[i + 1];}}System.out.println("删除后" + Arrays.toString(arr));}

结果:

4.有序数组的二分法查找

思路:①:从子序列的中间位置mid开始比较。value和mid元素相等,则查找成功;否则根据value大小缩小查询范围,若value较小,则继续在子序列的前半段查找;反之继续在后半段查找;
②:重复①,直到查询成功;当begin和end表示范围无效时,表示查询不成功;

/**** * @param arr* @param value* @return   查询的次数*/public  static int binarySearch(int[] arr,int value) {System.out.println("****************使用二分法查找****************");int mid = 0; // 检索的时候int start = 0;  //用start和end两个索引控制它的查询范围int end = arr.length;int count = 0;for (int i = 0; i < arr.length; i++){ count++;mid = (start + end) / 2;if(arr.length - 1 == i){System.out.println("抱歉,没有找到");}else if (arr[mid] < value){start = mid;}else if (arr[mid] > value){end = mid;}else{System.out.println(arr[mid] + "找到了,在数组下标为" + mid + "的地方,查找了" + count + "次。");break;}}return count;}

数组的基本操作(1)相关推荐

  1. php经典操作,php数组的经典操作(遍历数组、基本操作)实例

    下面小编就为大家带来一篇PHP数组的基本操作及遍历数组的经典操作实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 实例如下所示: 索引数组 //数组第一种定义 $ar ...

  2. python对数组的基本操作_[宜配屋]听图阁

    这篇文章主要介绍了简单了解python数组的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,创建列表 创建一个列表,只要把逗号分隔的不同 ...

  3. JavaScript学习(九十二)—关联数组的基本操作

    JavaScript学习(九十二)-关联数组的基本操作 王同学的每天进步一点点系列!!! 一.关联数组的定义 定义:所谓关联数组,就是指数组元素的下标为字符型 二.关联数组的创建方式 1)定义一个空数 ...

  4. python 中数组的基本操作

    文章目录 前言 一.numpy是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 在python中本身有着列表等数据结构,但是列表只是一种数据的存储容器,不具备任何计算能力. 故引入数组的概 ...

  5. java 数组的基本操作

    1  遍历数组 遍历数组就是获取数组中的每个元素,通常遍历数组使用for循环 例如: int [] a ={1,2,3,4};for (int i=0;i<a.length;i++){Syste ...

  6. python array操作,Python中数组的基本操作

    先定义一个数组列表:names = ["alexl", "banana", "candna", "dell", &quo ...

  7. Scala数组的基本操作,数组进阶操作,多维数组

    1.Scala中提供了一种数据结构-数组,其中存储相同类型的元素的固定大小的连续集合.数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合 2 声明数组变量: 要使用的程序的数组 ...

  8. python对数组的操作_Python对数组的基本操作

    # coding=utf-8 ''' Created on 2014-3-29 @author: Administrator ''' ''' 创建并打印数组 ''' arr = ["aex& ...

  9. JavaScript学习(九十一)—二维数组的基本操作

    JavaScript学习(九十一)-二维数组和多维数组总结 王同学的每天进步一点点系列!!! (一).二维数组的定义格式 var 数组名称=[[值1,值2,值3],[值1,值2,值3],[值1,值2, ...

最新文章

  1. java小编程---生成不重复的随机数列
  2. 在删除一个指针之后,一定将该指针设置成空指针(即在delete *p之后一定要加上: p=NULL)...
  3. 利用python爬虫(part3)--正则表达式
  4. python 条件概率_机器学习中的概率问题
  5. MySQL的外键约束
  6. 想学习java,如果学不会java怎么办?
  7. nginx配置静态资源允许跨域访问
  8. ajax 传输中文乱码,关于Ajax请求中传输中文乱码问题的解决方案
  9. VS2010中无法嵌入互操作类型“......”,请改用适用的接口的解决方法
  10. 扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常...
  11. Configuration Opennebula3.8 4.x Virtual Machines Contextualizing
  12. Fluent Python读后感
  13. 市场调研-全球与中国汽车零部件涂层市场现状及未来发展趋势
  14. 串口,使用交叉还是直连串口线
  15. Python基础详解(十三):(视频符号化)将视频转换成ASCII符号形式展示出来
  16. 撒旦撒旦阿三的撒的撒
  17. Mac 5年了 清理了一下多出了 70个G
  18. 虚拟机中输入ifconfig不显示ip地址,如何解决
  19. Facebook聊单,SaleSmartly有妙招!
  20. python制作水球图

热门文章

  1. 《Puppet实战手册》——导读
  2. JS实现表单多文件上传样式美化支持选中文件后删除相关项
  3. 演讲|微软全球公共事业部政府行业总经理Mark Day:第四次工业革命的数字红利...
  4. Sequelize Model
  5. [转]:xmake工程描述编写之选择性编译
  6. gtest 学习之五 测试用例中定义类
  7. linux中对shell变量内容的修改和替换
  8. [Android实例] 天天动听 悬浮歌词(迷你歌词)效果解读
  9. 编辑框CEdit自动换行简单设置
  10. 不要打我,不要打我,不要打我啊啊