Java数组(int为例)
定义:相同数据类型的数据的组合,是一种引用类型,是一个对象,存在堆里。
数组初始化:int[] scores1 = new int[]{72,90,59};//静态初始化:在声明并初始化数组与给数组相应的元素赋值操作同时进行。
int scores2[] = new int[3];
scores2[0] = 72;
scores2[1] = 90;
scores2[2] = 59;
//动态初始化:在声明并初始化数组与给数组相应的元素赋值操作分开进行。
//声明数组的错误写法:
1)String[] names = new String[5]{"AA","BB","CC"};
2)int i[10];
3)int i = new int[];
注:不管是动态还是静态初始化数组,一定在创建的时候,就指明了数组的长度!
引用数组元素:通过数组的下角标引用。下角标从0开始,到n-1结束,n是数组的长度。
数组长度:通过.length调用
遍历数组:
for( int i = 0 ; i < scores.length ; I ++){
System.out.println( scores[i]);
}
数组元素的默认初始值:
byte short int long 初始值为0
float double 初始值为0.0
char 初始值为 空格
boolean 初始值为false
引用类型初始值为null
一维数组的写法:int[] arrs = new int[5];
arrs[0] = 5;
//int arrs[] = new int[5];
二维数组的写法:int [][] is = new int[3][];
int[][] is2 = {{1,2},{3,4},{5,6}};
数组常见异常:
- 数组下标越界异常:java.lang.ArrayIndexOutBoundsException
int[] i = new int[10];
i[0] = 0;
i[10] = 10;//超出数组下标值(下标值越界)
for( int j = 0 ; j < i.length ; j++){
System.out.println(i[j]);
}
2.空指针异常: NullPointerException
(1) boolean[] b =new boolean[3];
b = null;
System.out.println(b[0]);
(2) String[] str = new String[4];
str[3] = new String("AA");//str[3] = "AA";
System.out.println(str[3].toString());
(3) int[][] j = new int[3][];
j[2][0] = 12;
Arrays类:
binayeSearch: 二分搜索法,使用二进制搜索算法来搜索指定类型数组,以获得指定的值。
输出结果
输出结果为搜索内容在数组中的位置(从0开始)
输出结果
负数指的是该数应在该数组中的位置(从1开始)
Equals:用于比较两个相同类型的值,如果两个指定类型的值相等则返回true,否则返回false。
Fill:用于填充数组
将int[] arrs2 中的内容替换成3
输出结果
将int[] arrs2 中的第二位到第三位替换为9
**2指第二位,4指第四位,9为替换的内容
**2,4指从第二到第三位,而不是从第二位到第四位
输出结果
Sort:对数组中的内容进行排序(从0开始)
public static void sort(int[] a)
copyOf:向数组添加内容
输出结果
copyOfRange: 截取数组内容
截取第0到第3位内容
输出结果