数组
1. 数组的概述
- 数组是由多个相同数据类型数据按一定顺序排列的集合
- 常见概念:数组名 下标 元素 数组长度
- 数组本身是引用数据类型,但数组中的元素可以是任意类型
- 数组长度一旦确定,不能修改
2.一维数组的声明
1.声明 int a[] int []a double b[] String []c
2.声明数组时不能指定长度 如int a[5]是错的
3.一维数组的初始化
1.动态初始化 声明和分配空间与赋值分开操作
int arr[]=new int[3];
arr[0]=3;
arr[1]=4;
arr[2]=9;
- 静态初始化 声明时就赋值
int a[]=new int[]{1,2,3};
int b[]={1,2,3};
String names[]={"Mike","Tom"};
3.数组元素的引用
- 在分配了空间之后才可以使用
- 引用方式: a[1]
- 下标从0—n-1 n是数组长度
- 每个数组都有通过length属性 a.length
- 数组未显示赋值时,元素值默认未0
4. 多维数组的使用
public static void main(String[] args) {
int arr[][]=new int[3][2];//定义了三行两列的数组
int arr1[][]=new int[3][];//三行,但是每一行的列数不一样
arr1[0]=new int[1];//Java中数组运行每一行的列数不同
arr[1]=new int[2];
arr1[2]=new int[3];
int arr3[][]=new int[][]{{1,2,3},{4,5,6}};//二维数组静态初始化
}
5.Arrays工具类的使用
boolean equals(int a[],int b[]) | 判断两个数组是否相等 |
String toString(int a[]) | 输出数组信息 |
void fill(int a[],int val) | 将指定值填充到数组中 |
void sort(int a[]) | 对数组进行排序 |
int binarySearch(int a[],int key) | 对排序后的数组进行二分查找 |
public static void main(String[] args) {
int a[]={1,2,3};
int b[]={1,2,3};
int c[]={4,5,6};
System.out.println(Arrays.equals(a, b));//true
System.out.println(Arrays.equals(a, c));//false
System.out.println(Arrays.toString(a));//[1,,2,3]
Arrays.fill(a,666);
System.out.println(Arrays.toString(a));//[666,666,666]
int d[]={1,2,3,4,5};
int index=Arrays.binarySearch(d, 3);
System.out.println(index);//2
}
6.数组中的常见异常
- 数组下标越界 ArrayIndexOutOfBoundsException
int a[]=new int[2];
System.out.println(a[-1]);
System.out.println(a[3]);
- 空指针异常 NullPointerException
int a[]=null;
System.out.println(a[0]);