java数组相关内容
数组概念
一组连续的存储空间、存储多个相同数据类型的值
- 属于引用数据类型
- 变量中存储数组的地址
- 作为返回值时返回的是数组的地址
数组特点
- 类型相同
- 长度固定
数组组成
- 下标从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}};
数组的查找
- 顺序查找:从头开始遍历所有元素,找出满足条件的数据
- 二分查找:必须是有序的数组,每次折半查找元素,将数据分成两半