una tridimensionales tridimensional suma resueltos metodos matriz matrices llenar imprimir filas ejemplos con columnas clase bidimensionales arreglos java arrays

java - tridimensionales - crear una matriz de larga



suma de filas y columnas de una matriz en java (5)

Necesito una matriz de 10 ^ 9 elementos.

Puede crear una matriz de mil millones utilizando un valor int . Haga n un int, y puede crear una matriz con una new long[n] Nota new long[n] : esto usará 8 GB de almacenamiento dinámico.

Ya que estás construyendo todos los elementos usando una fórmula, deberías poder dar todos los valores dinámicamente. es decir, crear un componente que sea una matriz "virtual" que le ahorraría tener que generar una matriz de todos ellos.

La razón por la que señalo esto es que es probable que el segundo bucle tome unos minutos en el mejor de los casos si k es muy pequeño, o podría llevar días fácilmente.

Por cierto: no puedo ver todo el código, pero parece que nunca necesitas más de k+1 valores que pueden asignarse una vez en lugar de nk veces.

Estoy tratando de crear una matriz larga en java, pero eclipse me muestra un error como se muestra a continuación:

A continuación se muestra mi código:

¿Cómo puedo resolver esto?

¿No puedo crear una matriz de tamaño largo en java?


Las matrices de largos están bien: long[] . Pero todas las matrices están int indexadas. Así que simplemente cambie long n a int n en la declaración del parámetro del método, y estará todo listo.


Para índice tienes que usar int pero no long


Tienes mi simpatía. Pasamos por esto cada vez que aumenta el tamaño de la memoria. Existe una extraña expectativa de que esta vez los tamaños de matriz no tendrán que aumentar en paralelo con los tamaños de memoria.

Su mejor solución es probablemente escribir su propia clase con los métodos long get(long index) y void set(long value, long index) . Podría representar los datos como un largo [10] [1000000000], y encapsular el mapeo entre el índice natural largo y el par real de índices int.


n (la capacidad del arreglo) tiene que ser un integer no long