Java基础入门(六)之数组

一、一维数组

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数组在内存中的地址值后 堆内存中连续空间中值发生改变可以影响数组整体

原文地址:https://www.cnblogs.com/xue-er/p/9356484.html