Tableaux et Java

bou -  
 mmigo -
je ne sais pas comment créer un tableau dynamique (taille non fixée) et avec plusieurs niveaux.

Je sais comment le faire en perl ( $tab{niv1}{niv2}{niv3} = $val )

Il m'est impossible de refaire la même chose en Java.

Si tu as la solution, ça m'aiderait énormément

Merci

8 réponses

  1. kathou Messages postés 80 Statut Membre 24
     
    Bonjour Bou!

    Pour créer un tableau dynamique en Java tu doit utiliser la classe Array List ou la classe Vector. De plus, plein de méthode sont disponibles pour faire toutes sorte de traitement.

    Je te conseille la classe Array List car la classe Vector est déprécier en Java.

    Sur le site de javasun.com tu trouveras toute la documentation nécessaire à la réalisation de ton tableau

    Bonne chance
    Kathou
    20
  2. lof. Messages postés 689 Statut Membre 44
     
    Les arrayList c'est bien, mais tu ne sais pas ce qui se trouve dedans....

    Une autre solution consiste a gérer soit même la dynamique du tableau.

    ex :
    int[] tab ={1,2};
     
    //Ajout d'un élément :
    int element=7;
    
    int[] temp=tab;
    tab=new int[tab.length+1];
    for(int i=0;i<temp.length;i++)
        tab[i]=temp[i];
    tab[temp.length]=element;
     
    


    Arrf
    lof.
    10
    1. rubidium Messages postés 95 Statut Membre
       
      SAlut,
      Tu es sur que ca vaut le coup au niveau gestion memoire et rapidité d'instancier a chaque fois un nouveau tableau et de copier l'ancien?
      J'ai utilisé pas mal de vecteurs et d'array list sans aucun probleme jusqu'a maintenant pour ne pas avoir a utiliser de tels artifices.

      @tchao
      0
      1. lof. Messages postés 689 Statut Membre 44 > rubidium Messages postés 95 Statut Membre
         
        Oui, je sais moi aussi j'utilise des ArrayList, mais je trouve beaucoup plus clair d'avoir un tableau objetX[] qu'un vecteur qui contient des objetX....
        Surtout quand on est débutant, il est facile de créer des ArrayList et de s'y perdre (ajout d'un objet non voulu dans un arrayList).

        Perso, ce ne sont les tableaux que je reconstruit qui me font perdre le plus de temp, et qui utilise le plus de mémoire ;-)
        0
      2. lof. Messages postés 689 Statut Membre 44 > rubidium Messages postés 95 Statut Membre
         
        Je viens de faire le test, et il est vrai que si il faut stocker pas mal de valeur, il y a un temp non néglieable de différence entre un ArrayList et un tableau reconstruit à chaque fois ....

        ensuite, tout dépend de ce que l'on cherche à faire ....

        Débutant : je conseil d'essayé la gestion dynamque.
        Ensuite : ArrayList ou Vector
        0
    2. NainPure
       
      Si tu peux savoir ce qu'il y a dedans :

      List<MonType> maListe = new ArrayList<MonType>();

      Alors qu'avec ta solution, on double (au minimum) le nombre de tableau utilisé, on parcours n fois une boucle avec x itération. Généralement, quand on a absolument besoin d'utilisé des tableaux (et pas des listes), c'est pour des algos assez costauds. Ta solution n'est donc vraiment pas adaptée.
      De plus, ta solution n'est acceptable que pour des tableaux de type primitifs, puisque tu fais int[] temp=tab;
      ce qui est généralement pas très fiable (en POO, tu ne copies pas la valeur de l'objet mais la référence, et donc toute modification sur l'autre sera logiquement impactée sur l'autre).
      Bon, je connais pas bien les tableaux en Java, je suis toujours passé par des List.
      0
    3. bob
       
      for(int i=0;i<temp.length;i++)
      tab[i]=temp[i];

      should be written as

      System.arraycopy(temp, 0, tab, 0, temp.length);
      0
  3. mmigo
     
    tu peut voire
    http://progjava.blogspot.com/2011/03/un-tableau-java-est-un-objet-permettant.html
    il y as pas mal de chose a savoir sur les tableau
    4
  4. SkonLa
     
    juste une petite remarque en passant concernant l'orthographe et le français : essayez de trouver quelque chose en utilisant la fonction "rechercher" dans un forum ecrit en SMS... vous verrez, il est beaucoup plus facile de trouver ce qu'on cherche sur un forum ecrit en francais correct avec le moins de fautes possibles (je dis pas sans faute c'est trop dur :).
    3
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. k-23 Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   9
     
    salut moi aussi je suis débutant je pense que tu devrais aller sur youtube il y a des bon tutorials pour apprendre tout sur java si tu veux savoir sur les tableau écrit java tables ca va taider

    note: ils sont en anglais
    1
  7. Sidi
     
    bonjour tous le monde,je viens de créer une application en PHP, mais mon seul souci, est comment obliger à l'utilisateur d'entrer que des entiers, si n'a pas respecté, on lui envoi une script d'alerte de reprendre tous,merci j'attends des réponses mes ami(es).
    1
  8. CEDIEU Achile
     
    je voudrais savoir toutes les informations sur la programmation de java S.V.P; mais les plus importantes pour ce moi c'est bien
    la creation des tableaux en java,les vecteurs et la class array
    -1
  9. afaf
     
    si tu es debutant tu fixe un tableau de longueur 1000 par exemple en faisant des if break a chaque fois pour ne pas depasser ta limite...
    soit tu te mets en Vector ArrayList Array ou List cest mieux.
    -2