数组
定义
数组:存储同一种数据类型的多个元素的容器;
定义格式:
A:数据类型[] 数组名;(推荐使用方式)
B:数据类型 数组名[];
举例:
int[] arr; 定义了一个int类型的数组,数组名是arr
int arr[]; 定义了一个int类型的变量,变量名是arr数组
数组初始化
A:动态初始化 只给出长度,由系统给出初始化值
B:静态初始化 给出初始化值,由系统决定长度
动态初始化:
数据类型[] 数组名= new 数据类型[数组长度];
举例:
public class ArrayDemo_01 {
public static void main(String[] args) {
//数据类型[] 数组名= new 数据类型[数组长度];
int[] arr = new int[3];
/*
左边:
int:说明数组中的元素类型是int类型;
[]:说明是一个数组;
arr:数组名称;
右边:
new:为数组申请分配空间;
int:说明数组中的元素类型是int类型;
[]:说明是一个数组;
3:说明数组长度,其实就是数组的个数
如何获取数组中的元素
//输出数组名
System.out.println(arr); //[I@1b6d3586
/*
通过输出数组,我们得到一个地址,但是这个对我们说没有意义
我们获取的数组中的元素值,能不呢能不能获取到呢?能
怎么获取?
每个数组都有编号,从0开始,最大的编号是 (数组长度-1)
通过数组名和编号的配合我们就能获取数组中指定编号的元素值
编号正确的叫法:索引
获取数组元素的各式: 数组名[索引]
*/
System.out.println("arr[0]:"+arr[0]);//0
System.out.println("arr[1]:"+arr[1]);//0
System.out.println("arr[2]:"+arr[2]);//0
}
数组静态初始化
package com.itheima2;
/*
静态初始化:给出数组中的元素值,有系统决定数组长度
格式:
数据类型[] 数组名= new 数据类型[] {元素1,元素2,元素3,...};
举例:
int[] arr = new int[]{1,2,3,...}
简化格式:
数据类型[] 数组名= {1,2,3,...};
*/
public class ArrDemo {
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.println("arr:"+arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
数组常见的两个问题
package com.itheima2;
/*
两个常见的小问题:
ArrayIndexOutOfBoundsException:数据索引越界异常
如何产生呢?我们访问了不存在的索引。
NullPointerException:空指针异常
如何产生呢?null是指不再指向堆内存的数据,而我还在访问堆内存的数据。
*/
public class ArrDemo2 {
public static void main(String[] args) {
int[] arr={1,2,3};
//访问数组中的元素
// System.out.println(arr[3]);
/*
引用数据类型:类,接口,数组
常量:null,它可以赋值给引用类型的,表示该引用不再指向堆内存的数据。
*/
arr = null;
// System.out.println(arr[0]);
}
}
数组遍历
数组遍历是依次输出数组中的每一个数据,可以对数据进行整理。求和、最大值、最小值。一般使用for循环,(数组长度)数组名.length
数组可以推算有规律的数据,并记录值。