2016-03-20 20 views
0

Erstellen einer Matrix der Größe [15088] [15088] [5] in Java führt mich aus dem Heap-Raum mit Int als Datentyp. Wie würde ich einen erstellen? Der Befehl -Xmx half nicht.Erstellen Sie eine Matrix

int[][][] a=new int[15088][15088][5]; 
+0

können Sie keine anderen Datentyp verwenden? wie Bitset, etc. – Rishi

+1

@Nithin Kumar das ist sehr große Array benötigt es mehr als 4 GB RAM. –

Antwort

2

Wenn Sie 15088 * 15088 * 5 Größe des Arrays zu verwenden, dann wird das Array benötigt 15088 * 15088 * 5 * 4 Bytes = 4.24 GB (ungefähr) ** von Heapgröße. Wenn die Daten spärlich verteilt sind, können Sie andere Datenstrukturen verwenden, wie in den folgenden Referenzen beschrieben.

Memory-efficient sparse array in Java

+0

Sie verwenden OpenIntObjectHashMap aus der Colt-Bibliothek, die im Vergleich zu anderen Alternativen deutlich weniger Speicher benötigt. – Rishi

+0

Wie erstellt man ein Arrays Array mit Liste oder Hash-Set? –

Verwandte Themen