HashSet vs ArrayList contient de la performance

Lors du traitement de grandes quantités de données, il m'arrive souvent de faire ce qui suit:

HashSet<String> set = new HashSet<String> ();
//Adding elements to the set
ArrayList<String> list = new ArrayList<String> (set);

Quelque chose comme "dumping" le contenu de l'ensemble de la liste. J'ai l'habitude de le faire depuis les éléments que j'ai souvent tendance à contenir des doublons je veux supprimer, et cela semble être un moyen facile de les supprimer.

Uniquement avec cet objectif à l'esprit (éviter les doublons), je pourrais aussi écrire:

ArrayList<String> list = new ArrayList<String> ();
//Processing here
if (! list.contains(element)) list.add(element);
//More processing here

Et donc pas besoin de "dumping", l'ensemble sur la liste. Cependant, j'aimerais faire une petite vérification avant l'insertion de chaque élément (que je suis en supposant que HashSet ne)

Est l'une des deux possibilités nettement plus efficace?

Vous avez votre première partie de la question mal. Vous êtes dumping liste dans le jeu pour éliminer les doublons, et non pas l'inverse, non?
Pourquoi ne pas le tester? Btw, pourquoi s'embêter avec la conversion de l'ensemble dans une liste, de toute façon? En passant par le réglage le plus probablement à être plus rapide pour les grands tableaux.
Salut, merci pour vos commentaires. Dans ce scénario, je remplir mon set avec les données (pour éviter les doublons) et puis vidage à une liste, de cette façon je peux obtenir une Liste avec les pas dupes. Si je n'ai pas besoin de la liste je ne voudrais pas créer réellement un, mais parfois, un tri est appliqué par la suite, et une partie du code que je travaille avec nécessite des listes.

OriginalL'auteur Jorge | 2015-09-13