Как сделать m по n матрицы со всеми элементами int x, используя ArrayList? - PullRequest
0 голосов
/ 13 июня 2019

Создание m на n матрицы с использованием ArrayList в Java.Я пытаюсь сделать конструктор с функцией создания матрицы m на n со всеми элементами 'int x'.

Я объявил матрицу ArrayList<ArrayList<Double>> matrix = new ArrayList<>();

Имя класса MatrixImpl поэтому тип конструктора, который я пытаюсь создать, это

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

А также, я не могу использовать 2D Array в этом проекте.

import java.util.ArrayList;
class MatrixImpl {
        ArrayList<ArrayList<Double>> matrix = new ArrayList<>();
        MatrixImpl(double x, int m, int n){
}

Ожидаемый результат: матрица m на n со всеми элементами 'x'.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вы можете создать временный массив 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);

        }

0 голосов
/ 13 июня 2019

java.util.Arrays имеет несколько удобных методов заполнения для примитивных типов.Кроме того, как указано в комментариях, 2-мерный массив достаточно хорош, поскольку вы знаете размер вашей матрицы во время построения.

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();
    }

}
...