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