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

Java Discussion :

Lecture de tableaux d'entiers dans fichiers


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut Lecture de tableaux d'entiers dans fichiers
    Bonjour à tous,

    Je souhaiterais lire des fichiers contenant des tableaux d'entiers. Dans chaque fichier le nombre de colonnes est fixe mais le nombre de lignes peut varier.

    Ma question porte sur la façon la plus efficace de lire ces fichiers et de stocker les tableaux d'entiers.

    J'hésite entre deux façons pour stocker les tableaux :
    - un tableau d'entiers (oui, oui il fallait y penser) ;
    - une ArrayList d'ArrayList d'entier.

    Le problème du tableau d'entier, dans mon cas, est que je ne connais pas le nombre de lignes avant d'avoir parcouru tout le fichier. Il faudrait donc à priori que je fasse une ré-allocation à chaque ligne (ce qui risque d'être coûteux non ?) ou un parcours préalable de l'ensemble du fichier pour connaître le nombre de lignes (ce qui est un peu barbare non ?).

    L'avantage de l'ArrayList est que je peux facilement ajouter une ligne supplémentaire sans avoir à réallouer l'ensemble. La question que je me pose est si les ArrayList ne sont pas plus coûteuse en terme de temps d'accès aux éléments et d'espace mémoire.

    Vous en pensez quoi ?
    Plutôt ArrayList ou tableau d'entiers ?
    Si tableau d'entier, je ré-alloue à chaque ligne, je parcours une fois au préalable pour avoir le nombre de lignes, ou il y a une méthode plus simple ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    Citation Envoyé par SAKDOSS Voir le message
    Le problème du tableau d'entier, dans mon cas, est que je ne connais pas le nombre de lignes avant d'avoir parcouru tout le fichier. Il faudrait donc à priori que je fasse une ré-allocation à chaque ligne (ce qui risque d'être coûteux non ?)
    Ben c'est exactement ce que fait ArrayList. C'est coûteux, mais de toute façon quand on connaît pas le nombre au départ, toute solution sera coûteuse.

    Il y a aussi LinkedList, mais elle a aussi ses défauts.

    Citation Envoyé par SAKDOSS Voir le message
    ou un parcours préalable de l'ensemble du fichier pour connaître le nombre de lignes (ce qui est un peu barbare non ?).
    C'est surtout que relire deux fois le même fichier c'est coûteux aussi.

    Citation Envoyé par SAKDOSS Voir le message
    L'avantage de l'ArrayList est que je peux facilement ajouter une ligne supplémentaire sans avoir à réallouer l'ensemble.
    ArrayList le fera à ta place, mais c'est pas de la magie.
    LinkedList ne réalloue pas, mais chaque objet qu'elle contient est wrappé par un autre objet, ce qui a un coût aussi. Et puis on ne peut parcourir une LinkedList qu'en séquence, avec un Iterator ou un foreach. Les get() sur une LinkedList sont très lents.

    Citation Envoyé par SAKDOSS Voir le message
    La question que je me pose est si les ArrayList ne sont pas plus coûteuse en terme de temps d'accès aux éléments et d'espace mémoire.
    Un petit peu. Le problème c'est que ArrayList ne peut contenir que des Integer, pas des int. Ça consomme plus de mémoire et de temps pour y accéder et la gérer.

    Citation Envoyé par SAKDOSS Voir le message
    Vous en pensez quoi ?
    Plutôt ArrayList ou tableau d'entiers ?
    Si tableau d'entier, je ré-alloue à chaque ligne, je parcours une fois au préalable pour avoir le nombre de lignes, ou il y a une méthode plus simple ?
    ArrayList. Prendre autre chose à cause du surcoût serait de la micro-optimisation. Il est peu probable que ça en vaille la peine.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    Ok merci bien pour cette réponse détaillée !

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

Discussions similaires

  1. Aide lecture Port serie et ecriture dans fichier.
    Par Mike1979 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/05/2015, 11h41
  2. [Tableaux] Ecriture tableau dans fichier
    Par identifiant_bidon dans le forum Langage
    Réponses: 4
    Dernier message: 20/11/2007, 16h48
  3. Lecture d'un nombre binaire dans un fichier ASCII
    Par semenzato dans le forum MFC
    Réponses: 1
    Dernier message: 13/04/2006, 22h41
  4. Réponses: 5
    Dernier message: 20/03/2006, 12h35
  5. récupérer un entier dans le fichier ".rc"
    Par luffy0013 dans le forum MFC
    Réponses: 2
    Dernier message: 15/02/2005, 12h44

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