在Java中使用ArrayList
使m乘n矩阵。我正在尝试构造一个具有所有元素'int x'的m x n矩阵的构造函数。
我已声明矩阵ArrayList<ArrayList<Double>> matrix = new ArrayList<>();
类名是MatrixImpl
,所以我要构造的构造函数的类型是
public MatrixImpl(double 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){
}
预期结果:所有元素均为'x'的m×n矩阵。
答案 0 :(得分:1)
您可以创建一个临时arrayList并放置值,并将其添加到arraylist到矩阵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);
}
答案 1 :(得分:0)
java.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();
}
}