0.主题
今天的代码主要实现了两个方法,第一个是将矩阵内的元素累加并返回最终的和,第二个是将两个矩阵相加并返回新的矩阵。此外,还用到了import,new,二重for循环等知识点。
package basic;
import java.util.Arrays;
public class MatrixAddition {
/**
******************
* The entrance of the program.
*
* @param args Not used now.
******************
*/
public static void main( String args[ ] ) {
matrixElementSumTest( );
matrixAdditionTest( );
} // Of main
/**
******************
* Sum the elements of a matrix.
*
* @param paraMatrix The given matrix.
* @return The sum of all its elements.
*/
public static int matrixElementSum( int[ ][ ] paraMatrix ) {
int resultSum = 0;
for( int i = 0; i < paraMatrix.length; i++ ) {
for( int j = 0; j < paraMatrix[ 0 ].length; j++ ) {
resultSum += paraMatrix[ i ][ j ];
} // Of for j
} // Of for i
return resultSum;
} // Of matrixElementSum
/**
******************
* Unit test for respective method.
******************
*/
public static void matrixElementSumTest( ) {
int[ ][ ] tempMatrix = new int[ 3 ][ 4 ];
for( int i = 0; i < tempMatrix.length; i++ ) {
for( int j = 0; j < tempMatrix[ 0 ].length; j++ ) {
tempMatrix[ i ][ j ] = i * 10 + j;
} // Of for j
} // Of for i
System.out.println("The matrix is: \r\n" + Arrays.deepToString(tempMatrix) );
System.out.println("The matrix element sum is: " + matrixElementSum( tempMatrix ) + "\r\n");
} // Of matrixElementSumTest
/**
******************
* Add two matrices. Attention: No error check is provided at this moment.
*
* @param paraMatrix1 The first matrix.
* @param paraMatrix2 The second matrix. It should have the same size as
* the first one's.
* @return The addition of these matrices.
******************
*/
public static int[ ][ ] matrixAddition( int[ ][ ] paraMatrix1, int[ ][ ] paraMatrix2 ){
int[ ][ ] resultMatrix = new int[ paraMatrix1.length ][ paraMatrix1[ 0 ].length ];
for( int i = 0; i < paraMatrix1.length; i++ ) {
for( int j = 0; j < paraMatrix1[ 0 ].length; j++ ) {
resultMatrix[ i ][ j ] = paraMatrix1[ i ][ j ] + paraMatrix2[ i ][ j ];
} // Of for j
} // Of for i
return resultMatrix;
} // Of matrixAddition
/**
******************
* Unit test for respective method.
******************
*/
public static void matrixAdditionTest( ) {
int[ ][ ] tempMatrix = new int[ 3 ][ 4 ];
for( int i = 0; i < tempMatrix.length; i++ ) {
for( int j = 0; j < tempMatrix[ 0 ].length; j++ ) {
tempMatrix[ i ][ j ] = i * 10 + j;
} // Of for j
} // Of for i
System.out.println("The matrix is: \r\n" + Arrays.deepToString(tempMatrix) );
int[ ][ ] tempNewMatrix = matrixAddition( tempMatrix, tempMatrix );
System.out.println("The new matrix is: \r\n" + Arrays.deepToString(tempNewMatrix) );
} // Of matrixAdditionTest
} // Of class MatrixAddition
程序执行结果如下
1.关键字
- import
java可以使用包来将类组织起来,一个类可以使用它所属包中的所有类和其他包中的公有类。当要使用其他包的公有类时,第一种做法是在每个类名之前添加完整的报名,这样做的好处是读代码的人能更准确的知道加载了哪些类,坏处是显得有些繁琐。第二种做法是使用import语句,可以用它导入一个特定的类或整个包,这样在使用其他包的公有类时就不必再加上包前缀了。
- new
java中的new用于实例化对象,并为其分配内存。
2.二重for循环
今天的程序核心是由二重for循环构成的。通过二重for循环访问矩阵的每个位置来为其赋初值,也通过二重for循环遍历每个矩阵元素并将其累加,还通过二重for循环同时遍历两个矩阵的同一位置,并将其和放入答案矩阵的同一位置来实现矩阵加法。
3.deepToString
在java.util.Arrays类中有toString方法和deepToString方法,前者用于将一维数组转为相应的字符串,后者用于将多维数组转为字符串。