Структура данных Java для матрицы? - PullRequest
6 голосов
/ 24 марта 2011

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

Я мог бы просто использовать массив n by b для матрицы, но проблема в том, чтоЯ не хочу тратить впустую память, потому что только несколько элементов находятся в матрице.

Я собирался использовать связанный список или хэш-таблицу, но не уверен, какой из них будет лучшей структурой данных икак реализовать это ..

Ответы [ 3 ]

4 голосов
/ 24 марта 2011

Я бы реализовал разреженную матрицу .Используйте HashMap с индексом строки в качестве ключей, а затем либо HashMap или TreeMap для фактических элементов (с индексом столбца в качестве ключа).Если вы храните примитивные типы, я бы посоветовал взглянуть на Trove Java Collections Framework.Он оптимизирован для использования с примитивными типами.В любом случае, я бы предложил использовать его, поскольку все ключи могут быть примитивными.

1 голос
/ 09 апреля 2012

Существует также несколько таблиц реализаций из библиотек Google Guava

0 голосов
/ 24 марта 2011

Когда матрица разрежена, лучше использовать LinkedList.LinkedList будет лучше других вариантов с точки зрения пространства (при условии, что матрица разрежена).

Но учтите, что LinkedList имеет время O (n) для доступа.

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