Bonjour,

J'ai un petit ceci pour stocker un objet :

J'essaye de faire un algo mais j'ai un problème pour stocker un objet :

J'initialise une arrayList qui va contenir mon code de fin.

Au début, je dois parcourir un fichier (n'importe quel fichier), puis stocker tout les caractère qui apparaisse dans ce fichier.

J'ai stocker ces caractères dans une hashSet d'integer (j'ai caster le caractère en entier).

Ensuite, je dois re parcourir mon fichier et cette fois à chaque fois que je lis un caractère de mon fichier je dois récupérer l'indice de ce caractère dans ma hashSet (on s'en fiche comment je la récupère).

(C'est cette partie qui ne marche pas)
-->
Et cette indice, je l'ajoute à mon arrayList de départ, le problème c'est que pour les petit fichier, ça marche car il n'y à pas beaucoup d'élement à ajouter mais quand je test juste avec un film de 180mo, j'obtient :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
LinkedList<Integer> linkedList = new LinkedList<Integer>(dictonnary);
 
for (int i = 0; i < mappedByteBuffer.limit(); i++) {
	int caracter = (int) mappedByteBuffer.get();
	encoding.add(linkedList.indexOf(caracter));
}
 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Unknown Source)
	at java.util.Arrays.copyOf(Unknown Source)
	at java.util.ArrayList.grow(Unknown Source)
	at java.util.ArrayList.ensureExplicitCapacity(Unknown Source)
	at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
	at java.util.ArrayList.add(Unknown Source)
	at mz78.MTF.swapAndShift(MTF.java:86)
	at mz78.MTF.encoding(MTF.java:26)
	at mz78.Main.main(Main.java:16)
<--

Que dois-je faire pour résoudre ce problème, je ne veux pas changer la taille de la jvm car si je test avec un film de 30go je ne pense pas que ça passera ^^.

On m'a conseillé d'utiliser la sérialisation mais je n'arrive pas à faire une sérialisation avec une boucle.

Merci.