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 :

[Tableaux]Ajouter des valeurs dans un tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [Tableaux]Ajouter des valeurs dans un tableau
    Voila j'ai une application java à faire et je suis un peu bloqué
    mon problème est que je n'arrive pas ajouter des valeurs dans mon tableau.
    je ne sais pas comment faire pour le dimensionner.

    Pour information je crée mon tableau vide et après j'ajoute des valeurs.

    Voici mon code :
    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
     
    class colaudio
    {
    	private audio taudio [];
    	private int nb_audio;	
     
    	public colaudio()
    	{
    		nb_audio = 0;
    		taudio = new audio[0];
    	}
     
    	public void insert(audio x)
    	{
    		nb_audio = nb_audio+1;
    		taudio[nb_audio] = (x);
    	}
    La méthode 'insert' ne veut pas fonctionner
    l'erreur : java.lang.ArrayIndexOutOfBoundsException: 1

    Si vous pouviez m'aider, je vous en remercie d'avance

  2. #2
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    c'est tout a fait normal que tu ais cette erreur !
    au depart ton tableau a une taille de 0 elements
    ensuite, lors du premier "redimensionnement" tu veux acceder a taudio[1], donc au 2e element, alors qu'il n'y en a aucun.
    en java je ne crois pas qu'on puisse redimensionner les tableaux, une fois que tu as fixé la taille du tableau dans les crochets avec le new, cette taille est fixe. Tu devrais utiliser un Vector ou une LinkedList ou un autre conteneur semblable.

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut

    c'est normal, tu essaies d'insérer des éléments dans un tableau de dimension 0

    utilise un Vector ou un ArrayList, ils sont redimensionnable.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Le truc c'est que je suis obligé d'utiliser un tableau et pas autre chose
    Je cherche une solution pour changer sa taille, mais bon, pour l'instant ma recherche est à 0.
    Je suis sur qu'il doit y avoir une solution.

    comme par exemple dans VB avec 'ReDim'

  5. #5
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    tu es obligé d'utiliser un tableau ???
    dans ce cas, tu cree un tableau super grand pour avoir assez de place pour tout mettre dedans. je ne vois pas comment tu peux faire autrement.
    sinon tu peut a chaque fois creer un nouveau tableau qui est une case plus grand que le precedent et tu retourne ce tableau ou tu l'affecte a l'ancien (sans oublier de recopier les valeurs)

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    alloue une taille estimée dont tu auras besoin, et en cas de dépassement recrée un tableau un peu plus grand (cf. ce que dit al85)

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    sérieusement
    y a pas une méthode pour faire ça :
    Je suis un débutant sur Java, et je me heurte déjà à une imposssibilité, c'est pas croyable. Je vais m'amuser avec JAVA

    Si quelqu'un trouve une solution (on sait jamais) je prends sans aucun problème. Et ça sera même un gros merci de ma part

  8. #8
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    Pas la peine de chercher plus loin. En java tu ne peux pas redimensionner les tableaux. Soit tu utilise une Collection, soit tu prevois un grand tableau, soit tu en cree un nouveau a chaque fois ! y'a pas de miracle

  9. #9
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    les tableaux "truc[] tab = new truc[taille]" sont statiques. tu donnes la taille à la création et tu ne peux plus la modifier après. c'est comme ça et il faut faire avec.

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    ok

    Je vous remercie pour vos réponses rapides.

    Je vais prendre la solution de créer un énorme tableau

  11. #11
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par Antoine1183
    Je vais prendre la solution de créer un énorme tableau
    pas trop gros quand meme. il faut estimer les besoins

  12. #12
    Membre habitué Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Points : 128
    Points
    128
    Par défaut
    ca va regler le probleme des ArrayIndexOutOfBoundsException, mais attention au OutOfMemoryException (bon, faut deja que tu en cree un gros gros gros pour avoir ca !)

  13. #13
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut Re: [Résolu] Ajouter des valeurs dans un tableau
    j'ai pas testé, mais ça ça devrait marcher
    - tableau de taille 20 au départ
    - si on dépasse la taille, alors on alloue 5 emplacements supplémentaires

    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
    24
    25
    class colaudio
    {
    	private audio taudio [];
    	private int nb_audio;	
     
    	public colaudio()
    	{
    		nb_audio = 0;
    		taudio = new audio[20];
    	}
     
    	public void insert(audio x)
    	{
    		nb_audio++;
     
                    if (nb_audio >= taudio.length)
                    {
                        audio[] tmp = new audio[taudio.length];
                        System.arraycopy(taudio,0,tmp,0,taudio.length);
                        taudio = new audio[tmp.length+5];
                        System.arraycopy(tmp,0,taudio,0,tmp.length);
                    }
     
     	        taudio[nb_audio] = x;
    	}

  14. #14
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    je vais essayer, je te remercie ENORMEMENT (un peu comme mon tableau )

    -------------------

    C'est bon tout marche je viens de tester, t'es un chef !!!! merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] Ajouter des valeurs dans un tableau simple
    Par olihop dans le forum WinDev
    Réponses: 2
    Dernier message: 18/11/2014, 11h23
  2. Ajouter des valeurs dans un tableau
    Par Mrlaurent90 dans le forum BIRT
    Réponses: 4
    Dernier message: 09/03/2011, 10h55
  3. [Tableaux] Comparer des valeurs dans un tableau
    Par Dirty Harry dans le forum Langage
    Réponses: 13
    Dernier message: 03/02/2007, 00h52
  4. Réponses: 3
    Dernier message: 12/06/2006, 12h04
  5. Réponses: 13
    Dernier message: 01/02/2006, 12h00

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