Limite d'un Vecteur

Résolu
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 31 oct. 2006 à 22:19
rom1v Messages postés 29 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007 - 1 nov. 2006 à 16:17
Bonjour a tous,
le plus grand nombre que l'on puisse affect a une variable de type Integer est bien " 2147483647" ?
alors si oui, pourquoi est que quand je declar un vector comme ceci ,
Vector V = new Vector(2147483647);

j'otient une exception comme ca
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Vector.(Vector.java:111)
at java.util.Vector.(Vector.java:124)
at GenerateurPasses.main(GenerateurPasses.java:11)

merci.

9 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
31 oct. 2006 à 22:44
Salut:

Que ce que tu va faire avec un tel tableau?

Une simple calcul te donne pourquoi tu obtient une telle exception :

CapacitéMax = 2147483647 * 4

Tu dépasse non pas la capacité de la machine virtuelle mais aussi celle de la machine.

Tu peux paramétrer la taille de la capacité de mémoire utilisée par la JVM.

> Java -Xmx <taille> ...
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 nov. 2006 à 13:02
De toute façon, ce que tu essaie de faire n'est pas possible
2147483647 * 4 octets 8589934588 octets 8191 Go !!!

Donc a moins d'attendre une bonne dizaine d'année, le temps que les barettes de 2 To sortent, tu ne pourras pas ! Que ce soit un tableau ou un vecteur, le problème ne vient pas de la limite de la taille du vecteur (ou du tableau), mais bel et bien de l'espace mémoire demandé pour stocker les informations.

Donc il va te falloir trouver un autre moyen de faire !
3
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
31 oct. 2006 à 22:54
c'est a dire que dans mon prog, je permet a l'utilisateur de saisir des nombre de type int et ensuite je les traite par differentes valeur alant jusqu'a 2147483647.

est ce la seul solution ?
merci
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
31 oct. 2006 à 23:03
Salut:

As tu besoin vraimant de ce très grand nombre?

Dès que  ton programme dépasse la taille allouée par la JVM une exception est levée.

Solution:

utilise :

> java -Xms <taille>

pour ajuster la mémoire allouée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 nov. 2006 à 08:51
Hum, tout dépend de ce que fait ton algo, mais je pense que stocker uniquement ce qu'à saisie ton user sera plus efficace que de stocker tout ce qu'il peut saisir !
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
1 nov. 2006 à 12:24
j'ai vrament besoin de stocker tous ces nombres dans un vecteur (ou meme dans un tableau).

merci
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
1 nov. 2006 à 12:38
Est ce que si j'utilise votre solution " java -Xms <taille> " le programme reste portable. (je pense que non , il faudrait que j'effectue cette opperation a chaque fois que je voudrais utiliser le programme).

merci.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
1 nov. 2006 à 13:12
j'ai essayer de faire 2147483647 / 4 et j'ai obtenu 618709 et ca marche.
je pense que d'apres ce que vous venez de dire, je ne pourrait pas aller plus haut.

merci
0
rom1v Messages postés 29 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007
1 nov. 2006 à 16:17
Revoie ta conception à mon avis...
Ou essaye de comprendre comment fonctionne un Vector (ou ArrayList)...
0
Rejoignez-nous