Java基础——数组的使用
一维数组
创建一维数组
//Java的数组长度不要求是常量,也可以是变量,但是需要提前定义并赋值。
//第一种创建方式。
int [] arr = new int [number];
arr = new int[] {元素1、元素2……};
//第二种创建方式。
int [] arr1 = {元素1、元素2……};
一维数组存储
数组的存储用到了两种数据结构,一种为栈,另外一种为堆。
其中栈存储的是java程序中的局部变量,而堆中存储的是java new出来的东西。
例如:
int [] arr = new int [3];
其中 **int [ ] arr **存储在栈内,存储的是数组的首地址。
而 ** new int [3]**存储在堆内,按照首地址依次排列,存储数组中的每一个元素。
一维数组遍历
int [] arr2 = {1,2,3,4,5};
for(int i=0; i<arr2.lengh; ++i) {
System.out.println(arr2[i]);
}
一维数组逆序
int [] arr = {1,2,3,4,5};
for (int i = 0; i < (arr.length / 2); i++) {
int temp = arr[arr.length - 1 -i];
arr[arr.length - 1 - i] = arr3[i];
arr[i] = temp;
}
一维数组排序
import java.util.Arrays;
int [] arr = {1,9,5,6,7};
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
一维数组拷贝
/*
第一种方式两数组同用一个内存单元。
第二种方式采用了Arrays的copyOf方法,可用于数组扩容。
*/
//第一种方式
int [] a = {1,2,4,5,6};
int [] arr = a;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//第二种方式
import java.util.Arrays;
int [] a = new int [5];
a = new int [] {1, 2, 5, 4, 6};
int [] arr = Arrays.copyOf(a,a.length);
//arr [0] = 5;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
二维数组
二维数组的创建
//常规创建数组
int [][] arr = new int [num1][num2];
//创建静态数组
int [][] arr = {{1,2,3},{1,2,3}};
//创建“不规则”数组
int [][] arr = new int [num1][];
二维数组的存储
二维数组中,大概的存储方式与一维数组的存储方式相同,new出来的存储在堆中。
二维数组可以理解为一维数组中存储一维数组,例如:
int [][] arr = new int[3][3];
栈中存储int [][] arr,堆中存储new int[3][3];
arr存储的是堆内一维数组的首地址,而这个一维数组存储的是另一个一维数组的首地址。
二维数组遍历
int [][] arr = new int[3][3];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}