背景:本篇是《算法》(第4版)1.1.5章节 【数组】的读书笔记
1. 数组的创建
在Java中创建数组需要三步:
1. 声明数组的名字和类型;
2. 创建数组;
3.初始化数组元素;
- 完整模式
1 double[] a; // 声明数组 2 a = new double[10]; // 创建数组 3 for (int i = 0; i < 10; i++) // 初始化数组 4 { 5 a[i] = 0.0; 6 }
- 简化写法
1 double[] a = new double[10];
- 声明初始化
1 double[] a = {1,3,5,7,9};
2. 起别名
数组名表示的是整个数组——如果我们将一个数组变量赋值给另一个变量
1 int[] a = { 1, 2, 3 }; 2 int[] b = a; 3 b[0] = 0; //则a[0]也会变为0
如果你想将数组复制一份,那么应该先声明,创建并初始化一个新的数组,然后将原数组中的元素值挨个复制到新数组。
3. 二维数组的创建
1 int [][] a={{1,2,3},{4,5,6,},{7,8,9}}; //三行三列的矩阵
4. 典型的数组处理代码
//颠倒数组元素的顺序 int[] c = { 1, 2, 2, 3, 5, 8, 10, 15, 2 }; int N = c.length; for (int i = 0; i < N; i++) { int temp = c[i]; c[i] = c[N - i - 1]; c[N - i - 1] = temp; }
1 //矩阵相乘 2 //矩阵a[]MxN和矩阵b[]NxK相乘=c[]MxK 3 int[][] a = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; // 3行4列 4 int[][] b = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } }; // 4行3列 5 int[][] c = new int[3][3]; // 3行3列 6 7 for (int i = 0; i < 3; i++) 8 { 9 for (int j = 0; j < 3; j++) 10 { 11 //计算行i和列j的点乘 12 for (int k = 0; k < 4; k++) 13 { 14 c[i][j] = a[i][k] * b[k][j]; 15 } 16 } 17 }