реализовать матрицу в Java - PullRequest
       14

реализовать матрицу в Java

0 голосов
/ 21 апреля 2011

Привет, я пытаюсь реализовать матрицу с помощью Java ... Я хочу написать метод, аргументом которого является строка, а столбец матрицы и метод составляют матрицу.я пишу этот код, но в нем есть ошибка .... в чем моя проблема?пожалуйста, помогите мне

public class Table {
int row ;
int column ;

Table (int rows , int columns ){
    row = rows;
    column = columns;
}

void makeTable(int row , int column){
    char[][] ;
    c.length = column ;
    c[0].length = row ;

}
}

Ответы [ 5 ]

2 голосов
/ 21 апреля 2011
class Table {

    int row;
    int column;
    char[][] c;

    Table(int rows, int columns) {
        row = rows;
        column = columns;
        makeTable(rows, column);//calling initilizer method
    }

    private void makeTable(int row, int column) {
        c = new char[row][column];//initilizing c

    }
}
1 голос
/ 21 апреля 2011

Вы не предоставляете конкретную ошибку, но в вашем существующем коде есть несколько:

void makeTable(int row , int column){
    // the next line is invalid - needs a variable name for the declaration
    char[][] ;
    // array length is not set as below, but is set at definition time
    c.length = column ;
    c[0].length = row ;

}

Правильный способ определения многомерного массива в Java:

char[][] c = new char[row][column];

Вы также можете объявить массив с рваными строками, каждая из которых имеет разную длину столбца (или одинаковую, в вашем случае, но зачем все усложнять?) Следующим образом:

char[][] c = new char[row][];
for(int i = 0; i < row; i++) {
    c[row] = new char[column];
}
0 голосов
/ 21 апреля 2011

Я знаю, что это, вероятно, домашнее задание, и поэтому вам нужно бросить свой собственный класс матрицы. Но для других Apache Commons имеет матричную библиотеку в своем пакете Math, которая работает очень хорошо.

http://commons.apache.org/math/api-2.0/org/apache/commons/math/linear/RealMatrix.html

0 голосов
/ 21 апреля 2011

Помимо хранения размеров матрицы (количество строк и столбцов) вам необходим массив или аналогичная структура для хранения содержимого массива.Это будет уровень класса (переменная-член), char[][] ;, который у вас есть в makeTable() - это неправильное место для хранения этого, и это не будет создано в любом случае, потому что вы не указали имя.

0 голосов
/ 21 апреля 2011

Рассматривали ли вы предоставление имен переменных? Или даже объявив матрицу?

Представьте себе:

class Table {
char matrix[][];
public Table(int row, int column) {
    matrix=makeTable(row, column);
} 

char[][] makeTable(int row, int column) {
   return new char[row][column];
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...