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 :

Implémentation d'une liste


Sujet :

Java

  1. #1
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut Implémentation d'une liste
    Bonjour à tous et à toutes.
    On sait qu’on peut implémenter une liste en tant que structure de données à l’aide d’un tableau. Bien entendu ce choix n’est pas judicieux et donc à éviter dans la partie conception détaillée de la liste. Mais, cela existe et même proposé dans un livre.
    Quel est votre avis sur la question ?
    Peut-on, dans ce contexte, tenir le discours habituel qui compare une liste (accès séquentiel, tri facile, …) avec un tableau (accès direct, tri difficile,….) ? Qui à mon avis se trouve faussé par cette implémentation. On devrait même pas se permettre cette comparaison.
    Merci à vous
    L'immortalité existe, elle s'appelle connaissance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu peux être plus clair sur ta question? Parce qu'un tableau n'est certainement pas difficile à trier, bien au contraire. Une liste n'est pas restreinte à un accès séquentiel. Elle n'a pas nécessairement le tri facile non plus.

    En fait, j'ai l'impression que tu confond liste et liste chainée.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Une liste est bien plus difficile à trier qu'un tableau. Le seul algorithme qui tient la route pour trier une liste c'est le tri à bulle, alors que sur un tableau on peut utiliser quicksort ou ce qu'on veut.
    Tu parles peut-être de la maintenir triée, c'est autre chose, mais à ce niveau-là il vaut mieux un arbre de recherche.
    Les points forts d'une liste c'est l'insertion et la suppression d'éléments ailleurs qu'à la fin.

    Concernant ta question, je dirais que ça dépend comment la liste est implémentée avec un tableau. À la base, la mémoire de l'ordinateur c'est un tableau, donc forcément, toutes les implémentations de liste utilisent un tableau. C'est juste qu'en principe pour chaque élément elles réservent un espace mémoire, qui contient cet élément ainsi que où trouver en mémoire le suivant et le précédent. On peut faire pareil dans un tableau : chercher un index où il n'y a pas d'élément, et y mettre un élément, ainsi que quel est l'index dans le tableau où se trouve le précédent, pareil pour le suivant.
    Disons que c'est plus difficile, parce qu'on se tape le problème de l'allocation mémoire au lieu de laisser le langage s'en charger pour nous.


    ... Et il faut bien reconnaître que c'est des questions pas très pertinentes pour Java, tout ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    Ok. Merci pour ta réponse.
    On peut implémenter le principe d'une liste de plusieurs manières!
    J'ai implémenté dernièrement une liste chaînée et ce n'est pas ce principe dont je parle.
    Pour une étude de complexité, j'ai également implémenté en java une liste à l'aide d'un tableau. Ce n'était pas top! D’où ce post.

    Je reformule ma question :

    On sait qu’on peut implémenter une liste en tant que structure de données à l’aide d’un tableau.
    Bien entendu ce choix n’est pas judicieux et donc à éviter dans la partie conception détaillée de la liste. Mais, cette solution existe et même proposée dans un livre.
    On a également l'habitude de comparer les deux structures liste et tableau dans les différents cours, sans avoir le détail d'implémentation, en se basant sur plusieurs points tels que le type d’accès (direct, séquentiel), les types de traitements, connaissance ou pas de la taille dès le début, ....

    Quel est votre avis sur la question ?

    Peut-on, dans ce contexte, tenir le discours habituel qui compare une liste avec un tableau ? Qui à mon avis se trouve faussé par cette implémentation. On devrait même pas se permettre cette comparaison.

    J'espère être clair et votre avis est précieux.

    Merci à vous
    L'immortalité existe, elle s'appelle connaissance

  5. #5
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    Merci Thelvin.
    Et il faut bien reconnaître que c'est des questions pas très pertinentes pour Java, tout ça.
    C'est vrai, c'est au delà d'une simple utilisation de java. C'est bien à savoir quand même! La preuve , c'est que tu m'as convaincu pour cette petite curiosité.
    Merci beaucoup
    L'immortalité existe, elle s'appelle connaissance

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par wafiwafi Voir le message

    On sait qu’on peut implémenter une liste en tant que structure de données à l’aide d’un tableau.
    Bien entendu ce choix n’est pas judicieux et donc à éviter dans la partie conception détaillée de la liste.
    Y a pas de raison. L'implémentation de la liste la plus utilisé en java, c'est l'ArrayList, elle est implémentée via l'utilisation d'un tableau, rapide d'accès aléatoire et pas spécialement lente en accès séquentiel, et elle occupe bien moins de mémoire qu'une liste chainée. Elle ne deviens problématique que lorsque la taille deviens conséquente (besoin d'une zone de mémoire contigüe) et ne garantis pas les performances à l'insertion.


    Citation Envoyé par wafiwafi Voir le message
    On a également l'habitude de comparer les deux structures liste et tableau dans les différents cours, sans avoir le détail d'implémentation, en se basant sur plusieurs points tels que le type d’accès (direct, séquentiel), les types de traitements, connaissance ou pas de la taille dès le début, ....
    Comme tu l'a bien relevé, un tableau, on sais ce que sait, une liste on sais pas ce que sait. Si tu ne définis pas plus clairement "liste", ça peut représenter tout et n'importe quoi et tu sais même pas comparer liste avec liste

  7. #7
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    C'est très pertinent ce que tu viens de dire!! Merci à toi.
    L'immortalité existe, elle s'appelle connaissance

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

Discussions similaires

  1. Triage d'une implémentation d'une liste chaînée
    Par Roud9 dans le forum Général Java
    Réponses: 3
    Dernier message: 01/07/2015, 20h06
  2. Implémentation d'une liste chainée
    Par bendébutantenprog dans le forum Débuter avec Java
    Réponses: 43
    Dernier message: 12/06/2013, 11h31
  3. implémentation d'une liste depuis une base de donnée
    Par zdig10 dans le forum Développement Sharepoint
    Réponses: 8
    Dernier message: 29/06/2011, 15h45
  4. petite erreur d'implémentation dans une liste simplement chaînée
    Par johnny3 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/10/2008, 16h57
  5. Implémentation d'une liste chaînée
    Par Yux dans le forum C
    Réponses: 22
    Dernier message: 02/03/2006, 20h31

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