JAVA 数组
一维数组
### 数组定义方式同变量定义方式:
int a=1; //定义整数变量值为1
int[] a; //定义整数数组a,此时a为空数组,未初始化(数组长度就是0) ##java没有指针概念
a = new int[10]; //将a初始化为长度为10的数组
// 上述两句数组定义也可合成一句话:
int[] a = new int[10]; //长度为10的数组,且初始值内容都为0(此处和C++不同,C++数组初始值默认为随机值)
//常见定义方式:
int[] a = new int[10], b; //定义长度为10的整数数组a和未初始化长度的整数数组b
float[] f = new float[33];
double[] d = new double[123];
char[] c = new char[21];
String[] str = new String[10] //初始值都是null
数组初始化的方法
int[] a = {0, 1, 2}; // 含有3个元素的数组,元素分别是0, 1, 2
int[] b = new int[3]; // 含有3个元素的数组,元素的值均为0
char[] d = {'a', 'b', 'c'}; // 字符数组的初始化
b = new int[10] //java数组长度是灵活的,可以修改的
数组访问
同C++
多维数组
int[][] a = new int[3][4]; // 大小为3的数组,每个元素是含有4个整数的数组。
int[][][] b = new int[10][20][30]; // 将所有元素的初值为0
// 大小为10的数组,它的每个元素是含有20个数组的数组
// 这些数组的元素是含有30个整数的数组
多维数组初始化
int[][] a = { // 三个元素,每个元素都是大小为4的数组
{0, 1, 2, 3}, // 第1行的初始值
{4, 5, 6, 7}, // 第2行的初始值
{8, 9, 10, 11} // 第3行的初始值
// java多维数组每一维的长度是可以不同
int[][] a = {
{0,1,2,3},
{4,5,6}, //长度为3
{7,8,9,10}
}
数组常用API
-
属性
length
:返回数组长度,注意不加小括号 -
使用
Arrays
需要import java.util.Arrays
-
Arrays.sort()
:数组排序 -
Arrays.fill(int[] a, int val)
:填充数组 -
Arrays.toString()
:将数组转化为字符串 -
Arrays.deepToString()
:将多维数组转化为字符串 -
数组不可变长
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = {5,1,2,4,3}; System.out.println(a.length); // 5 int[][] b = { {1,2,3}, {4,5,6,7}, {7,8,9} }; System.out.println(b.length); //3 for(int i=0;i<b.length;i++) System.out.println(b[i].length); // 输出: //3 //4 //3 System.out.println(Arrays.toString(a)); // [5, 1, 2, 4, 3] System.out.println(Arrays.deepToString(b)); // [[1, 2, 3], [4, 5, 6, 7], [7, 8, 9]] Arrays.fill(a,1); System.out.println(Arrays.toString(a)); // [1, 1, 1, 1, 1] Arrays.sort(a); System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 5] } }