IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

problème avec ArrayList et JVM


Sujet :

Collection et Stream Java

  1. #1
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut problème avec ArrayList et JVM
    bonjour
    j'ai un message d'erreur JVM

    java virtual launcher

    fatal exception occured program willexit
    java.long.outOfmemory eror
    exception inj thread "main"


    j'ai une liste
    ArrayList A=[1111111111111111,2222222222222222,3333333333333333]
    la combinaison sera
    11111111111111112222222222222222,11111111111111113333333333333333]

    le nombre de caractére de chaque élement de la liste A égale 16

    j'aurais un message d'erreur si je fais la combinaison entre les deux éléments 11111111111111112222222222222222,11111111111111113333333333333333
    comment résoudre ce problème

    j'espere que vous m'aidez

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par ulysse031
    bonjour
    j'ai un message d'erreur JVM

    java virtual launcher

    fatal exception occured program willexit
    java.long.outOfmemory eror
    exception inj thread "main"


    j'ai une liste
    ArrayList A=[1111111111111111,2222222222222222,3333333333333333]
    la combinaison sera
    11111111111111112222222222222222,11111111111111113333333333333333]

    le nombre de caractére de chaque élement de la liste A égale 16

    j'aurais un message d'erreur si je fais la combinaison entre les deux éléments 11111111111111112222222222222222,11111111111111113333333333333333
    comment résoudre ce problème

    j'espere que vous m'aidez
    J'ai pas compris grand chose...

    Tu as une liste avec des éléments de 16 caractères dedans, c'est bien ça ? Et ensuite tu fais des unions entre plusieurs éléments ?

    Tu as combien d'éléments dans ta liste ? Tu peux nous donner ton code ?

  3. #3
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    Il manque pas l'identifier dans la déclaration de ton ArrayList ?
    (Tu es sous quel JVM justement ?)

  4. #4
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    salut
    la déclaration est just
    ArrayList A = new ArrayList ();
    A.add(11111111111111112222222222222222,);
    A.add(11111111111111113333333333333333);

    combianson(A); ça marche pas

    et comment savoir sur quel JVM je suis

  5. #5
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Le problème, il me semble, c'est que tes nombres dépacent la capacité d'un long. Après ça dépend de ce que tu veux faire

  6. #6
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    Comme le dit bien guigui5931, ça depends de ce que tu veux faire.
    En général on ne concatenne pas des nombres. Si c'est vraiement ce que tu veux faire regarde du coté de BigInteger

    Pour la version de la jvm, tu as
    java-config -L
    et java -version

    Parce que a partir de la version 1.5 il me semble que la déclaration d'une ArrayList est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ArrayList<Identifier> plop = new ArrayList<Identifier> ();
    Pour une string : 
    ArrayList<String> plop = new ArrayList<String> ();
    mais c'est un problème annexe

  7. #7
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    merci encore
    voila le code qui me permet de faire la combinaison entre les élements d'une liste

    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
    19
    20
    21
    22
    23
     
     public static ArrayList combinaison(ArrayList source, int niveau)
        {
                ArrayList result = new ArrayList();
     
                for(int i = 0; i < source.size(); i++)
                {
                        String firstElement = source.get(i).toString();
                        StringBuffer buffer = new StringBuffer(firstElement);
                        for(int j = i+1; j < source.size(); j++)
                        {
                                String secondElement = source.get(j).toString();
     
                                if(secondElement.startsWith(firstElement.substring(0, niveau)))
                                {
                                        buffer.append(secondElement.substring(niveau));
                                                result.add(buffer);
                                                buffer = new StringBuffer(firstElement);
                                }
                        }
                }
                return(result);
        }
    un exemple si une liste A =ab,ac,ad j'aurais abc,abd niveau égale 1

    mais si j'ai des chiffres un élément qui contient plus 16 caractére et niveux dépand le nombre de caractére dans ce cas 16

    un message d'erreur JVM

    un autre exemple si une liste A=1234,1245 alors la combinaison 123445 et le niveau =2



    je n'ai pas trouvé comment régler le problème

  8. #8
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    Donc ce sont bien des String que tu manipules. Déclare des ArrayList de String

  9. #9
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    comment déclarer des ArrayList de String

  10. #10
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Remonte à l'avant dernier post de Trax44 pour ça

  11. #11
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    ArrayList<String> plop = new ArrayList<String> ();que ça veut dire cette diclaration et quel est la dififrence avec
    ArrayList plop = new ArrayList();

    je coince encore ,j'espere que vous avez compris le problème

  12. #12
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    QUe c'est une ArrayList dans laquelle tu ne pourras mettre que des String, alors que dans la seconde tu pourras mettre n'importe quoi

  13. #13
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    merci pour cette information mais quel est le rapport avec mon problème
    que je dois faire pour résoudre le problème

  14. #14
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    Quand tu ne donne pas de type a ton ArrayList il le fait automatiquement pour chaque element (d'après ce que j'aurais compris). Donc qunad il voit un nombre il se dit que c'est un nombre justement. Soit tu cast en String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (String) 111111111111;
    Soit tu déclare une ArrayList de String

  15. #15
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    merci pour cette information mais pourquoi cette déclaratilon ne marche plus
    ArrayList<String> A = new ArrayList <String>();
    un message d'erreur ( or [ expected at line 17

  16. #16
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Cette syntaxe ne fonctionne qu'à partir de java 1.5, donc tu dois tourner actuellement sur une version antérieure.

  17. #17
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Quelle version de java utilise tu?

  18. #18
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    bonjour
    la version utilisé est jdk1.4.2 (JbuilderX)
    comment je dois résoudre mon problème

  19. #19
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Dans ce cas tu vas déclarer ta liste comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList maliste=new ArrayList();
    et quand tu fera un get il faudra que tu caste ton objet

  20. #20
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    mais j'utilise toujours un cast voila un exemple
    String secondElement = source.get(j).toString();

    please look la procedure et qu'est ce qui'il ne va pas

Discussions similaires

  1. problème avec arraylist
    Par inès83 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 20/04/2008, 18h08
  2. Problème avec ArrayList
    Par yarf dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 03/07/2007, 10h50
  3. problème avec arraylist
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/02/2007, 12h00
  4. [débutant] problème avec arraylist
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/12/2006, 16h01
  5. Problème avec ArrayList <String>
    Par fiphi dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 29/08/2006, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo