Есть ли способ использовать конструкцию для каждой таблицы Guava Table? - PullRequest
6 голосов
/ 16 марта 2012

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

public void printTable(Table table)
{
    int numRows = table.rowKeySet().size();
    int numCols = table.columnKeySet().size();

    for (int i=0; i<numRows; i++) 
    {
           for (int j=0; j<numCols; j++) 
           {
               System.out.print( table.get(i,j) + " " );
           }
           System.out.println();
    }
}          
Table<Integer, Integer, Integer> table = HashBasedTable.create();
void makeTable()
{
    for (int i=0; i<4; i++) 
           for (int j=0; j<6; j++)
               table.put(i, j, i*j+2);
}

1 Ответ

5 голосов
/ 16 марта 2012

Почему бы вам просто не позвонить Map<R,Map<C,V>> rowMap() и не повторить его?

Кроме того, я думаю, что вы могли бы предпочесть TreeBasedTable, который учитывает порядок строк и столбцов, поскольку вы используете целые числа для строк и столбцов, и кажется, что вы хотите выполнить итерацию в естественном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...