数组
-
int[] array = new int[10];申明创建数组
-
array[0] = 1 ;给数组赋值
-
默认初始化值为0
-
静态初始化:创建+赋值:int[] a = {1,2,3};
-
动态初始化:包含默认初始化:int[] b = new int[10];
b[0] =1;
数组边界
-
下标的合法区间是[0,length-1]
-
数组是 相同的数据类型 的有序集合
-
数组是对象,数组元素相当于对象的成员变量
-
数组的长度是确定的,不可变的,越界则报错:ArrayIndexOutofBounds
数组的使用
数组的反转
public class Demo02 {
public static void main(String[] args) {
int[] arrays = {1,2,3,4,5};
int[] reverse = reverse(arrays);
printArray(reverse);
}
//数组作为返回值,反转数组
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
for (int i = 0,j =result.length-1; i < arrays.length; i++,j--) {
result[j] = arrays[i];
}
return result;
}
//数组作为方法入参,打印遍历数组
public static void printArray(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
}
}
多维数组
遍历二维数组
int[][] array = {{1,2},{3,4},{5,6}};
// printArray(array[0]);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
Arrays 类
-
常用功能
-
给数组赋值:fill方法
-
给数组排序:sort方法,升序
-
比较数组:equals方法比较数组中元素是否相等
-
查找元素:binarySearch方法对排序好的数组进行二分查找法操作
-
稀疏数组
案例
package array;
public class Demo05 {
public static void main(String[] args) {
int[][] array1 = new int[11][11];
array1[1][2] = 1;
array1[2][3] = 2;
//输出原始数组
System.out.println("输出原始数组");
for (int[] ints : array1) {
for (int anInt: ints ) {
System.out.print(anInt+"\t");
}
System.out.println();
}
//转换为稀疏数组
int sum = 0;//获取有效值的个数
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (array1[i][j] != 0){
sum++;
}
}
}
System.out.println("有效值的个数"+ sum);
//创建一个稀疏数组
int[][] array2 = new int[sum+1][3];
array2[0][0] =11;
array2[0][1] =11;
array2[0][2] =sum;
//遍历二维数组,存放非0值到稀疏数组中
int count = 0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
if (array1[i][j] != 0){
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = array1[i][j];
}
}
}
//输出稀疏数组
System.out.println("稀疏数组");
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i][0]+"\t"
+