当前位置: 首页 > 知识库问答 >
问题:

用java创建二维数组

简成仁
2023-03-14

我正在编写一个java代码,计算一个数组的平均值,它很好地发挥了作用,但我想把它修改成一个2D数组(二维数组)。

import java.util.*;
public class Test3{
   public static void main(String [] args){
      Scanner adnan = new Scanner(System.in);
      System.out.println("Enter the length of the array : ");
      int length = adnan.nextInt();
      int [] input = new int [length];
      System.out.println("Enter Numbers : ");
      for ( int i = 0; i < length; i++){
         input [i] = adnan.nextInt();
      }
      float average = average(input);
      System.out.println("Average of all numbers in the array : " + average);
      adnan.close();
   }
   public static float average(int [] input){
      float sum = 0f;
      for ( int number : input){
         sum = sum + number;
      }
      return sum / input.length;
   }
}

任何帮助都将非常感谢,因为我不太擅长2D数组。

共有1个答案

林和煦
2023-03-14

在Java中,使用双括号声明2D数组t[][]:

public static void main(String[] args) {

    // mock to not to use a stdin redirection or enter data manually
    ByteArrayInputStream system_in = new ByteArrayInputStream("3 2 5 8 1 6 7 2".getBytes(UTF_8));

    Scanner adnan = new Scanner(system_in);

    System.out.println("Enter rows number: ");
    final int rows = adnan.nextInt();

    System.out.println("Enter rows number: ");
    final int cols = adnan.nextInt();

    final int [][] input = new int[rows][cols];

    System.out.println("Enter Numbers : ");
    for (int row = 0; row < rows; row++) {
        for (int col = 0; col < cols; col++) {
            input[row][col] = adnan.nextInt();
        }
    }
    double average = average(input);
    System.out.println("Average of all numbers in the array : " + average);
    adnan.close();
}

public static double average(int[][] input) {
    // use streams or you can use the `Enter Numbers...` way
    return Arrays.stream(input)
            .flatMap(x -> Arrays.stream(x).boxed())
            .mapToInt(x -> x).average()
            .getAsDouble();
}

有输出

Enter rows number: 
Enter rows number: 
Enter Numbers : 
Average of all numbers in the array : 4.833333333333333
 类似资料:
  • 问题内容: 考虑: 这是如何创建具有5行10列的二维数组吗? 我在网上看到了这段代码,但是语法没有意义。 问题答案: 请尝试以下操作: …这是类似这样的缩写: 请注意,每个元素都将被初始化为默认值,,因此以上也等同于:

  • 考虑: 这就是您创建一个5行10列的二维数组的方式吗? 我在网上看到了这段代码,但语法没有意义。

  • 说明 支付宝境外到店支付-创建二维码 官方文档:https://global.alipay.com/service/external_QR_Code/52 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\CreateQR\Request 属性 名称 类型 说明 $service string 接口名称 $notify_url stri

  • 问题内容: 我想动态创建一个二维数组。 我知道列数。但是行数正在动态更改。我尝试了数组列表,但它仅将值存储在单个维度中。我能做什么? 问题答案: 由于列的数量是恒定的,你可以有一个的。 由于它以a 为后缀,因此行数可以动态增加和减少。每行都有一个,它是静态的,但是您说列数是固定的,因此这不是问题。

  • 我该如何在Java中使用二维数组来设计这样的东西呢? 除了“name[i][j]=200;”当我把这个放进去的时候,它只印这个,其他什么也不印

  • 问题内容: 我在构造函数中提供了带有对象的泛型类型。我想在此构造函数中创建二维数组,但是这可能吗? 问题答案: 与如何在Java中创建通用数组相同?但扩展到2D: 阅读上面JAB的注释后的注意:要扩展到更多维度,只需将[]和维度参数添加到newInstance()(cls是一个类,d1到d5是整数): 有关详细信息,请参见。