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

avec Java Discussion :

Utilisation d'une java.util.List


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 72
    Points : 68
    Points
    68
    Par défaut Utilisation d'une java.util.List
    Salut,

    Si j'utilise une list et que je veux la réutiliser, qu'est ce qui est mieux?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list = new ArrayList();
    ou
    Merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Ça dépend des cas, pour plein de raisons.

    Par exemple, si la première contient un million d'éléments et que la suivante n'en contient que quelques-uns, il vaut mieux faire new ArrayList() et laisser la précédente tomber dans le garbage collector.

    Par contre, si les deux contiennent des millions d'éléments, la première a déjà réservé la mémoire nécessaire, et il vaut mieux faire un clear() dessus qu'en réserver une autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Et il faut aussi avoir à l'esprit que ta première liste peut être utilisée ailleurs.
    Doncil faut regarder si la liste est exportée. Si c'est le cas, c'est à toi de voir en fonction du cas s'il faut travailler sur la même ou sur une nouvelle.
    Sinon, comme l'a dit thelvin, si l'utilisation de la liste reste du même ordre, autant faire un clear.

  4. #4
    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
    le code du clear n'est pas (et c'est un euphémisme) des plus performants pour les grosses listes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public void clear() {
    	modCount++;
     
    	// Let gc do its work
    	for (int i = 0; i < size; i++)
    	    elementData[i] = null;
     
    	size = 0;
        }
    on garde en effet un tableau interne à la taille qu'avait la liste

    Je dirait, utiliser clear uniquement si
    -> la liste n'est pas utilisée ailleurs et tu va recréer une liste de taille identique ou très proche.
    OU
    -> la liste est utilisée ailleurs et tu désire que toutes les références contiennent les nouvelles données

    Le new est bien plus à propos dans la plus part de cas

  5. #5
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Si la liste de départ était bien une ArrayList, pas mieux que Tchize.

    Par contre si on juste typé la list en java.util.List, il peut y avoir des surprises avec un new ArrayList (je pense en particulier à de la persistance où l'objet conserve la liste des éléments ajoutés / supprimés, et où on ne peut faire l'impasse sur un clear).

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 72
    Points : 68
    Points
    68
    Par défaut
    Merci à vous tous.
    En faite la list contient grand max 2000 objets et elle est vider quand on n'en a plus besoin et qu'on remet d'autres objets 1 par 1.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/12/2007, 20h08
  2. Problème avec java.util.List
    Par alphonse62 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 11/06/2007, 12h03
  3. required : java.util.List
    Par marcxa44 dans le forum Maven
    Réponses: 4
    Dernier message: 11/05/2007, 12h30
  4. Comment creer un objet java.util.List ?
    Par Battosaiii dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 02/11/2006, 13h14
  5. Réponses: 5
    Dernier message: 06/09/2005, 03h50

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