[Java基础]数组/二维数组/查找最大元素/平均值/复制/颠倒/矩阵相乘

数组

1】数组能顺序存储相同类型的多个数据,可以通过索引访问数据
2】所有元素的初始值都是0.0
3】数组一经创建,长度大小就是固定了
4】a.length获取数组a[]的长度,数组a的最后一个元素总是a[a.length-1]
5】如果你创建了一个大小为N的数组,但是使用了一个小于0或者大于N-1的索引访问它,程序会抛出ArrayIndexOutOfBoundsException异常而终止
6】数组起别名会导致难以察觉的问题,如果你像复制数组,应该声明创建并初始化一个新的数组,然后复制到新数组里去
package 数组;

public class test {

	public static void main(String[] args) {

		int N = 10;
		// 完整模式
		double[] a;
		a = new double[N];
		for (int i = 0; i < N; i++) {
			a[i]=0.0;
		}
		
		//简化写法
		double[] newa = new double[N];
		
		//声明初始化
		int[] b = {1,3,4,5,5};

	}

}

常用数组操作算法

package 数组;

public class task {

	// 找出数组中最大的元素
	public double findMax(double[] a) {
		double max = a[0];
		for (int i = 0; i < a.length; i++) {
			if (a[i] > max) {
				max = a[i];
			}
		}
		return max;
	}

	// 计算数组元素的平均值
	public double findAverage(double[] a) {

		int N = a.length;
		double average = 0;
		double sum = 0.0;
		for (int i = 0; i < N; i++) {
			sum += a[i];
			average = sum / N;
		}
		return average;

	}

	// 复制数组
	public double[] copyArr(double[] a) {
		int N = a.length;
		double[] b = new double[N];
		for (int i = 0; i < N; i++) {
			b[i] = a[i];
		}
		return b;

	}

	// 颠倒数组元素的顺序
	public double[] reversalArr(double[] a) {
		int N = a.length;
		for (int i = 0; i < N / 2; i++) {
			double temp = a[i];
			a[i] = a[N - 1 - i];// 交换顺序为 第一个和最后一个交换,第二个和倒数第二个换,只换N/2遍即可
			// N-1为最后一个数,N-1-i为需要交换的数
			a[N - 1 - i] = temp;
		}
		return a;

	}

	// 矩阵相乘(方阵)
	public double[][] multiplyArr(double[][] a, double[][] b) {
		
		int N=a.length;
		double[][]c=new double[N][N];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < N; j++) {
				for (int k = 0; k < N; k++) {
					//计算行i和列j的点乘
					c[i][j]+=a[i][k]*b[k][j];
				}
				
			}
			
		}
		
		return c;

	}

}

二维数组

1】初始化为0可以直接用简化,但是如果想要初始化为其他值,需要嵌套循环或手动初始化

                int M=10;//这里的长度是必须给的
 		int N=10;
		double[][] a;
		a=new double[M][N];
		for (int i = 0; i <M; i++) {
			for (int j = 0; j < N; j++) {
				a[i][j]=0.0;
				
			}
			
		}
		
		//简化写法
		double[][] b = new double[M][N];

	}

打印二维数组

for (int i = 0; i < c.length; i++) {
			for (int j = 0; j < c[i].length; j++) {
				
				  System.out.print(c[i][j]+" "); 
			}
			 System.out.println("\n");
		}





猜你喜欢

转载自blog.csdn.net/qq_38277033/article/details/79284863