Java 如何找到矩阵元素的和

Java 如何找到矩阵元素的和

在Java中,数组是一个对象。它是一个非原始数据类型,用于存储相似数据类型的值。Java中的矩阵实际上是一个多维数组,代表了多行和列。

在这里,我们提供了一个包含一组元素的矩阵,根据问题描述,我们需要找出矩阵中所有元素的和。

让我们深入探讨一下这篇文章,了解如何使用Java编程语言来完成它。

展示一些实例

示例1

给定矩阵 =

21  22  23
24  25  26
27  28  29
  • 以上矩阵中元素之和=315

示例2

给定矩阵=

121     222 243 432
124 245 256 657
237 258 229 345
176 453 756 343
  • 上述矩阵的元素之和=4194

示例3

给定矩阵=

1   2   3
4   5   6
7   8   9
  • 上述矩阵的元素总和 = 45

步骤

步骤-1

  • 步骤-1 - 声明一个二维矩阵。

  • 步骤-2 - 调用用户定义的方法来找到矩阵中所有元素的和。

  • 步骤-3 - 该方法使用两个嵌套的循环遍历矩阵中的每个元素,并将当前元素的值添加到一个运行总和中。

  • 步骤-4 - 该方法返回矩阵中所有元素的和。

步骤-2

  • 步骤-1 - 声明一个二维矩阵。

  • 步骤-2 - 调用用户定义的方法来找到矩阵中所有元素的和。

  • 步骤-3 - 该方法使用Arrays.stream将二维矩阵转换为一维元素流,并使用forEach将每个元素的值添加到一个运行总和中。

  • 步骤-4 - 该方法返回矩阵中所有元素的和。

步骤-3

  • 步骤-1 - 声明一个二维矩阵。

  • 步骤-2 - 调用用户定义的方法来找到矩阵中所有元素的和。

  • 步骤-3 - 该方法使用Stream API将二维矩阵转换为一维元素流,并使用reduce方法来找到流中所有元素的和。

  • 步骤-4 - 该方法返回矩阵中所有元素的和。

语法

要获取数组的长度(即数组中的元素数),有一个内置属性,即 长度

下面是其语法参考 –

array.length

在这里,“array”指的是数组引用。

多种方法

我们以不同的方法提供解决方案。

  • 使用嵌套循环:

  • 使用 Stream API:

  • 使用 Arrays.stream 和 flatMap:

让我们逐个查看程序及其输出。

方法1:使用嵌套循环

在这种方法中,程序将初始化矩阵元素。然后,通过将数组作为参数传递给用户定义的方法,并在该方法内部按照算法使用嵌套循环计算给定矩阵的元素之和。

示例

public class Main {
   public static void main(String[] args) {

      // declare and initialize the 2D matrix
      int[][] inputMatrix = {{10, 20, 30}, {40, 50, 60}, {70, 80, 90}};

      // Call the user-defined method to get the sum of all elements
      int sum = sumOfMatElmt(inputMatrix);

      // Print the result
      System.out.println("Sum of matrix elements: " + sum);
   }

   //user-defined method to find the sum of the elements
   public static int sumOfMatElmt(int[][] mat) {

      // declare and initialize the sum variable
      int sum = 0;
      for (int i = 0; i < mat.length; i++) {

         // initiate the looping over each column of the current row
         for (int j = 0; j < mat[i].length; j++) {

            // Add the current element to the sum
            sum += mat[i][j];
         }
      }

      // Return the result
      return sum;
   }
}

输出

Sum of matrix elements: 450

方法2:使用Stream API

在这个方法中,矩阵元素将在程序中被初始化。然后调用一个用户定义的方法,将数组作为参数传递,并在方法内使用流API根据算法计算给定矩阵元素的总和。

示例

import java.util.stream.IntStream;
public class Main {
   public static void main(String[] args) {

      // declare and Initialize the 2D matrix
      int[][] inputMatrix = {{11, 22, 33}, {44, 55, 66}, {77, 88, 99}};

      // Call the sumOfMatrixElements method to get the sum of all elements
      int sum = sumOfMatElmnt(inputMatrix);

      // Print the result
      System.out.println("Sum of matrix elements: " + sum);
   }
   public static int sumOfMatElmnt(int[][] mat) {

      // Create an IntStream for each row of the matrix
      // and use map to get the sum of each row
      // Finally, use sum method to get the sum of all rows
      return IntStream.range(0, mat.length)
         .map(i -> IntStream.of(mat[i]).sum())
         .sum();
   }
}

输出

Sum of matrix elements: 495

方法3:使用Arrays.stream和flatMap

在这种方法中,矩阵元素将在程序中进行初始化。然后通过传递数组作为参数来调用一个用户定义的方法,方法内部根据算法使用Arrays.stream和flatMap计算给定矩阵元素的总和。

示例

import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
   public static void main(String[] args) {

      // Declare a 2D matrix
      int[][] matrix = {{12, 23, 34}, {45, 56, 67}, {78, 89, 90}};

      // Call the calculateSumOfElements method to find the sum of all elements
      int sum = calculateSumOfElements(matrix);

      // Print the result
      System.out.println("The sum of all elements in the matrix is: " + sum);
   }
   public static int calculateSumOfElements(int[][] matrix) {

      // Use Arrays.stream and flatMap to convert the 2D matrix into a 1D stream of elements
      return Arrays.stream(matrix)
         .flatMapToInt(IntStream::of)
         .sum();
   }
}

输出

The sum of all elements in the matrix is: 494

在这篇文章中,我们使用Java编程语言探讨了寻找矩阵和的不同方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程