数组的概念: 数组可以看成容器,可以存数,数组是一组数据的集合,数组中的每个数据被称为元素。数组可以存放任意类型的数据,但同一数组里存放的元素必须一致,数组可以分为一维数组和多维数组。 数组的优点:能够存多个,查询遍历效率快
数组的定义格式:数组类型 变量名 【】 = {数值};
另一种格式: 数据类型 【】 变量名;
例如: Int a [] ; float [] b; String [] c; 也可以这样写: int a[]; int b[]; 数组的使用:
- 从内存原理来看,数组是一个特殊的变量
- 从内存中看,堆区的内存是空闲的,我们可以在堆区去定一个数组的变量,让其存多个数据。
- 保证cpu的执行由栈区交给堆区(new)
- 在堆区中,开辟内存的目的是存数据
- 存数据:开辟内存空间,数据类型
- 定义数组 = new 数据类型[长度]; //数组的动态初始化
数组的数据操作: * 取值操作 : 注意:如果是整数,系统会赋默认值0 ,小数 :0.0 String : null * 直接取值(将值打印到控制台) * 取值方便 * 无法对数组中的数据进行多次操作 * 变量 = 数组的数值; int a =arr[1]; * 使用比较繁琐 * 可以对数组的数据进行多次操作 * 赋值操作 * 数组名[索引] = 数值;arr[5]=15;前提是明确数组的类型。
数组的特性: length,表示数组的长度 数组名.length
数组的静态初始化
- 数据类型[] 变量名= new 数据类型[]{数值1,数值2,…};
- 数据类型[] 变量名 = {};
- 静态和动态比
- 动态,默认值:系统给的。长度自己给的
- 静态,自己的 ;长度的是系统给的
数组常见的异常:
- Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException
- 数组索引越界异常
- Exception in thread “main” java.lang.NullPointerException
- 空指针异常
二维数组: 数组中嵌套数组 数据类型 [ ] [ ] 变量名 = new int [3] [4];
例如:
int [] [] arr = new int [3] [4];
数据的操作:
- 取数
* 直接取 * 赋值取 - 赋值
- 变量名[索引第几个数组][索引具体的内容]
演示代码:
int [] a;
int [] a = new int [3];
System.out.println(new int [3]);
System.err.println(a[0]);
System.err.println(a[1]);
System.err.println(a[2]);
int con=a[0];
int b=con+100;
a[1] = 100;
int c= a.length;
int[] [] arr1 =new int [3] [4];
int [] [] arr2= {{1,2},{1,2,3},{1,2,3,4}};
int [] [] arr= new int [3] [4];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}
练习 一定要写注释和或者写需求分析 例如:数组中存5个整数,求和,以及求平均数
- 第一步:创建项目,并进行测试
- 第二步:需求分析
- 第三步:定义数组,并在初始化的时候给5个长度
* 数组的定义格式 : 数据类型[] 变量名 = new 数据类型[长度] - 第四步;往数组中存入5个整数
* 数组的赋值操作 * 数组名[索引] = 数值; - 第五步:在进行求和和平均数操作之前,先把数组中的数据取出来
* 取值操作 * 直接取值 :进行测试 * 赋值取值 - 第六步:求和操作
* 求和会产生新的值,就需要变量进行存储 * 数据类型 变量名 = 数值; - 第七步:求平均值,用sum值除以长度
public class test02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = 0;
int begin =sc.nextInt();
int arr [] = new int [begin];
for (int i = 0; i < arr.length; i++) {
arr[i]=sc.nextInt();
}
for (int j = 0; j < arr.length; j++) {
sum+=arr[j];
}
System.out.println(sum);
System.out.printf("%.2f",sum/(arr.length));
}
}
|