Comment sélectionner les valeurs en double à partir d'une liste en java?

Par exemple ma liste contient {4, 6, 6, 7, 7, 8} et je veux le résultat final = {6, 6, 7, 7}

Une façon est d'une boucle sur la liste et d'éliminer les valeurs uniques (4, 8 dans ce cas).

Est-il un autre moyen efficace plutôt qu'en parcourant la liste ? J'ai posé cette question parce que la liste que je suis en train de travailler est très grand ?
Mon code est

List<Long> duplicate = new ArrayList();
for (int i = 0; i < list.size(); i++) {
     Long item = (Long) list.get(i);
     if (!duplicate.contains(item)) {
          duplicate.add(item);
         }
     }
Vous aurez à boucle à travers l'ensemble de la liste, au moins une fois si vous voulez trouver tous les doublons. Il n'y a pas de "plus efficace" pour cela avec une liste, si vous avez à comparer chaque valeur de la liste, pour le rendre plus efficace la solution réside dans la création de la liste.
Vous avez besoin d'au moins une boucle. Si vous voulez un code plus efficace (n'est pas garantie dans tous les cas, si), vous pouvez l'essayer par la commande de la liste en premier et ensuite vérifier si les "voisins" sont différents (si si, vous avez un point unique, il suffit de retirer de la liste)
Vous avez toujours la possibilité d'imprimer la liste et compte les doublons si vous préférez ne pas faire de boucle.
Vous êtes conscient que votre code ne fait pas ce que vous demandez dans votre question?

OriginalL'auteur Lucky_Singh | 2013-06-25