Перевести коллекцию в Java - PullRequest
1 голос
/ 27 июня 2011

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

Collection<Collection<T>> table;

Какой наиболее эффективный способ вы бы использовали для перевода "строк" в "столбцы" с помощью Java?

РЕДАКТИРОВАТЬ:

val_11  val_12  val_13  val_14
val_21  val_22  val_23  val_24
val_31  val_32  val_33  val_34

should be translated to

val_11  val_21  val_31
val_12  val_22  val_32
val_13  val_23  val_33
val_14  val_24  val_34

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Метод транспонирования, который предполагает, что коллекция коллекций представляет собой матрицу:

public List<List<T>> transpose(Collection<Collection<T>> table) {
    boolean init = false;

    List<List<T>> result = new ArrayList<List<T>>();
    for (Collection<T> row: table) {
        if (!init) {
            for(int i = 0; i < row.size(); i++)
                result.add(new ArrayList<T>(table.size());
            init = true;
        }

        for(int i = 0; i < row.size(); i++)
            result.get(i).add(row.get(i));
    }

    return result;
}
0 голосов
/ 27 июня 2011

Если бы вы использовали Гуава Таблица вместо Collection<Collection<T>>, вы могли бы использовать Tables.transpose для создания представлениятаблицы с переключенными клавишами строк и столбцов.Конечно, вам нужно иметь дело с ключами для ваших строк и столбцов (возможно, целых чисел), а не просто не иметь ключей строк или столбцов вообще.

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