2011-03-24 21 views
6

Cuál es la mejor estructura de datos que puedo usar para mi matriz que contendrá variables cortas pero la mayoría de los elementos están vacíos ...¿Estructura de datos de Java para la matriz?

Podría simplemente usar n by b array para la matriz pero el problema es que no lo hago No quiero desperdiciar la memoria porque solo hay algunos elementos en la matriz.

Iba a utilizar una lista vinculada o una tabla hash pero no estoy seguro de cuál sería la mejor estructura de datos y cómo implementarla.

+0

esto podría ayudar para matrices dispersas en java http://stackoverflow.com/questions/390181/sparse-matrices-arrays-in-java si se va para tirar la tuya, creo que la elección de la estructura de datos dependerá del tipo de operaciones que harás –

Respuesta

4

Implementaré un Sparse Matrix. Utilice un HashMap con el índice de fila como claves, y luego un HashMap o TreeMap para los elementos reales (con el índice de columna como clave). Si está almacenando tipos primitivos, le sugiero que consulte el Trove Java Collections Framework. Está optimizado para usar con tipos primitivos. Sugeriría usarlo de todos modos, ya que las claves podrían ser todas primitivas.

0

Cuando la matriz es escasa, es mejor utilizar LinkedList. LinkedList será mejor que otras opciones en términos de espacio (siempre que la matriz sea escasa).

Pero tenga en cuenta que LinkedList tiene O (n) tiempo de acceso.

1

También hay múltiples implementaciones de bibliotecas Table Google Guava

Cuestiones relacionadas