Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ArrayList生成所有元素为int x的m×n矩阵?_Java_Matrix_Arraylist_Generic Collections - Fatal编程技术网

Java 如何使用ArrayList生成所有元素为int x的m×n矩阵?

Java 如何使用ArrayList生成所有元素为int x的m×n矩阵?,java,matrix,arraylist,generic-collections,Java,Matrix,Arraylist,Generic Collections,在Java中使用ArrayList生成m×n矩阵。我试图构造一个构造函数,它的函数是用所有元素“intx”生成m×n矩阵 我已经声明了matrixArrayList matrix=new ArrayList() 类名是MatrixImpl,因此我尝试创建的构造函数类型是 public-MatrixImpl(双x,int-m,int-n){..} 而且,我不能在这个项目中使用2D数组 import java.util.ArrayList; class MatrixImpl { Ar

在Java中使用
ArrayList
生成m×n矩阵。我试图构造一个构造函数,它的函数是用所有元素“intx”生成m×n矩阵

我已经声明了matrix
ArrayList matrix=new ArrayList()

类名是
MatrixImpl
,因此我尝试创建的构造函数类型是

public-MatrixImpl(双x,int-m,int-n){..}

而且,我不能在这个项目中使用2D数组

import java.util.ArrayList;
class MatrixImpl {
        ArrayList<ArrayList<Double>> matrix = new ArrayList<>();
        MatrixImpl(double x, int m, int n){
}
import java.util.ArrayList;
类MatrixImpl{
ArrayList矩阵=新的ArrayList();
MatrixImpl(双x,整数m,整数n){
}

预期结果:所有元素均为“x”的m×n矩阵。

您可以创建一个临时arrayList,并将值添加到arrayList到matrix arrayList。对行数重复该过程

MatrixImpl(double x, int m, int n){
ArrayList<ArrayList<Double>> matrix = new ArrayList<>();
        for( int i = 0;i<m;i++){
           ArrayList<Double> t = new ArrayList<>();
           for(int j=0;j<n;j++){
               t.add(x);
            }
            matrix.add(t);

        }

MatrixImpl(双x,整数m,整数n){
ArrayList矩阵=新的ArrayList();

for(int i=0;ijava.util.Arrays为基元类型提供了一些方便的填充方法。 正如注释中所建议的那样,二维数组已经足够好了,因为您在构建时知道矩阵的大小

import java.util.Arrays;

public class MatrixImpl {

    double matrix[][];

    public MatrixImpl (double x, int m, int n)
    {
        matrix=new double[m][n];
        for (int i=0;i<m;i++)
            Arrays.fill(matrix[i],x);
    }
    public void print()
    {
        for (int i=0;i<matrix.length;i++)
        {
            for (int j=0;j<matrix[i].length;j++)
                System.out.print(" "+matrix[i][j]);
            System.out.println();
        }

    }

    public static void main(String[] args) {
        MatrixImpl mi=new MatrixImpl(5,4,3);
        mi.print();
    }

}
导入java.util.array;
公共类矩阵{
双矩阵[];
公共矩阵ximpl(双x,整数m,整数n)
{
矩阵=新的双[m][n];

对于(int i=0;iIt不清楚您试图做什么。
ArrayList matrix=new ArrayList()
就足够了,矩阵将随着元素的添加而动态增长。如果确实需要使用指定的大小对其进行初始化,请使用接受该大小的构造函数,并在外部列表中添加一个新的数组列表。
n
不清楚实际问题是什么;您知道大小,只需要初始化列表。正如您所做的那样m x n矩阵您不需要允许动态大小的
ArrayList
,数组就足够了,例如:
double[][]矩阵=新的double[m][n];