java数组相关内容

7

数组概念

一组连续的存储空间、存储多个相同数据类型的值

  • 属于引用数据类型
  • 变量中存储数组的地址
  • 作为返回值时返回的是数组的地址

数组特点

  • 类型相同
  • 长度固定

数组组成

  • 下标从0开始
  • 默认值如下图:

数组声明方式

  • 数组类型[] 变量名= new 数组类型[N];
  • 数组类型[] 变量名=new 数组类型[]{数组元素}
  • 数组类型[] 变量名 ;变量名 = new 数组类型[N]
  • 数组类型[] 变量名={数组元素}

内存说明

数组扩容

创建一个新的数组、将原数组的数据赋值到新数组上

插入、删除

复制方式

  • 循环将原数组中所有元素逐一赋值
  • System.arraycopy(原数组、原数组起始、新数组、新数组起始、长度)
  • java.util.Arrays.copyOf(原数组,新长度)

可变长参数

数组遍历

  • for循环
  • 增强for循环:for(int arr:arrs){}
    • 不能使用下标
    • 遍历引用类型
      • 底层实现迭代器
    • 遍历基本数据类型
      • 底层for循环

二维数组

概念:一维数组中的一维数组;数组中的元素还是数组

创建的方法

  • 1.先声明再分配空间:数据类型[][] 数组名;数组名=new 数据类型[高维长度][低维长度];
  • 2.声明并分配空间:数据类型[][] 数组名=new 数据类型[高维长度][低维长度];
  • 3.声明并赋值(繁):数据类型[][] 数组名=new 数据类型[高维长度][];a[高维长度]=new int[低维长度];
  • 4.声明并赋值(简):数据类型[][] 数组名=new{{value1,value2},{value3,value4}};

数组的查找

  • 顺序查找:从头开始遍历所有元素,找出满足条件的数据
  • 二分查找:必须是有序的数组,每次折半查找元素,将数据分成两半