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 :

Question sur la FAQ collections


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GrosLapin
    Homme Profil pro
    Ingénieur et Etudiant
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur et Etudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Par défaut Question sur la FAQ collections
    Bonjour à tous,

    J'ai du mal à comprendre ceci :
    java.util.ArrayList :
    Un java.util.ArrayList utilise un tableau en interne pour ranger les données. Un ArrayList fournit un accès aux éléments par leur indice très performant et est optimisé pour des opérations d'ajout/suppression d'éléments en fin de liste.
    Complexité : Les opérations size, isEmpty, get, set, iterator sont exécutées en temps constant.
    Les opérations d'ajout/suppression sont exécutées en temps constant amorti (les ajouts/suppressions en fin de liste sont plus rapides).
    Ajout en temps constant amorti, ça me va, mais la suppression en temps constant amorti je vois pas, ou alors j'ai mal compris le "amorti"

    Pour moi c'est en temps linéaire en fonction du nombre d’élément après l’élément à supprimer. Puisque ArrayList conserve l'ordre, on ne peut pas juste faire un swap avec le dernier élément, on est obligé de décaler les X élément apres de 1.

    Du coup si vous pouvez m'éclairer je suis preneur

    GrosLapin

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Effectivement je la trouve pas d'une grande clarté, cette entrée -_-°.

    L'ajout n'est en temps constant amorti que si c'est à la fin de la liste. Pour ajouter à la fin de la liste il faut qu'il y ait de la place dans le tableau, et s'il n'y en a pas il faut créer un tableau plus grand et copier le contenu de l'ancien tableau vers le nouveau, ce qui est en temps linéaire. Mais ArrayList s'arrange pour réserver un peu de place libre à la fin, chaque fois qu'il crée un nouveau tableau. Le résultat de tout ça, c'est que ajouter n éléments à la fin, a une complexité O(n), le temps constant amorti.

    La suppression n'est en temps constant qu'à la fin de la liste. Ce n'est pas un amorti, c'est un temps constant pur et simple.

    Ajout et suppression ailleurs, est en temps linéaire, comme tu le dis.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé Avatar de GrosLapin
    Homme Profil pro
    Ingénieur et Etudiant
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur et Etudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Par défaut
    C'est bien ce que je pensais, merci pour la confirmation

    GrosLapin

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

Discussions similaires

  1. Question sur les FAQ..
    Par Jade_13 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 25/04/2008, 16h05
  2. [Collections]question sur un ArrayList
    Par julrock dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/08/2006, 11h41
  3. Question sur une condition d'un exemple de la FAQ
    Par Bleys dans le forum Delphi
    Réponses: 3
    Dernier message: 08/08/2006, 12h43
  4. Question sur le code compactage de la FAQ
    Par Nicko29 dans le forum Access
    Réponses: 7
    Dernier message: 14/11/2005, 20h19

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