一、一维数组
1. 定义:数组是存储同一种数据类型 多个元素的集合 也可以看成是一个容器数组既可以存储基本数据类型 也可以存储引用数据类型数组 它本身就是一个类型 是一个引用数据类型。
2. 作用:存储同一类型的多个数据,可以为元素编号
3. 格式:数据类型[] 数组名 = new 数据类型[数组长度]
4. 内存:堆内存和栈内存
栈内存 存储的是基本数据类型的变量数据 / 对象的引用 / 方法
堆内存 存储new出来的实体 数组/对象new出来的东西 叫做实体
每一个实体 都有内存地址值,实体中变量都有默认初始化值,不同数据类型的初始化值不同,引用数据类型初始化为null
5. 初始化方式:静态初始化和动态初始化
动态初始化:为数组开辟连续的内存空间 并且为每个数组的元素赋默认值 格式:数据类型[] 数组名 = new 数据类型[数组长度]
在创建的时候 就指定了数组的长度由系统给出默认初始化值
静态初始化:在创建时 给出存储内容 系统自动分配长度
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3....元素n}元素之间以逗号进行分割
简写格式:数据类型[] 数组名 = {元素1,元素2,元素3....元素n}
注意:静态初始化的简写格式 不能先声明 后 指向只能在一行书写
6. 数组中常见的异常以及举例
7. 数组的遍历
8. 排序 选择排序 冒泡排序 二分法查找
选择排序
冒泡排序
二分查找法
9. Arrays工具类:负责对数组进行 排序 查找 填充 等等操作
主要用来操作一维数组的
java.util.Arrays
静态方法 使用 类名.方法名 直接调用
常用方法:
.将组内容转成字符串的形式输出String Arrays.toString(int[] array)
.数组排序 默认是升序void Arrays.sort(int[] array)
.使用二分查表法 从数组中获取指定元素的索引 有就返回 没有返回-1 int Arrays.binarySearch(int[] array,int value)
.复制指定的数组
.1 int[] Arrays.copyOf(int[] array,int newlength) 包含length 个数 长度
.2 int[] Arrays.copyOfRange(int[] array,int from,int to) 角标 包含头 不包含尾 [from,to)
.判断两个数组是否相等boolean Arrays.equals(int[] array1,int[] array2)
6.使用指定元素填充数组void Arrays.fill(int[] array,填充的数据)
二、二维数组
1.定义:数组中每一个元素搜是一个一维数组
2.初始化方式:静态和动态
静态初始化:
格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组3}...{一维数组n}};
简化: 元素类型[][] 数组名 = {{一维数组1},{一维数组2},{一维数组3}...{一维数组n}};
例如: int[][] arr = {{5,6,7},{8,9,10},{2,3}};
动态初始化:
格式: 元素类型[][] 数组名 = new 元素类型[二维数组的长度][一维数组的长度];
例如: int[][] arr = new int[3][3];
3.值传递和引用传递
在Java中 方法的传参 基本数据类型 传的是值 值传递 值在该方法中 改变 属于局部变量改变 当出了该方法 就没有作用了
在Java中 方法的传参 引用数据类型 传的是地址值 当传入 arr数组在内存中的地址值后 堆内存中连续空间中值发生改变可以影响数组整体