Maison > Java > javaDidacticiel > Quels sont les moyens de supprimer les doublons des collections List en Java ?

Quels sont les moyens de supprimer les doublons des collections List en Java ?

王林
Libérer: 2019-11-27 15:11:13
avant
4840 Les gens l'ont consulté

Quels sont les moyens de supprimer les doublons des collections List en Java ?

Méthode de suppression :

À travers les caractéristiques de la collection d'ensembles, le caractère unique des éléments de l'ensemble

public static List heavyListMethod01(List list){
        Set set=new HashSet(list);
        //Set set1=new TreeSet(list);
        List alist=new ArrayList();
        for (Object o:set) {
            alist.add(o);
        }
        return alist;
    }
Copier après la connexion

Tutoriels vidéo gratuits recommandés : vidéo java

En utilisant les caractéristiques de la collection d'ensembles, le les éléments sont uniques AddAll(Collection c)

public static List heavyListMethod02(List list){
        List newList=new ArrayList();
        newList.addAll(new HashSet(list));
        return newList;
    }
Copier après la connexion

2. Utilisez la méthode list contain pour supprimer les doublons

public static List heavyListMethod03(List list){
        List alist=new ArrayList();
        for (Object o:list) {
          if(!(alist.contains(o))){
            alist.add(o);
          }
        }
        return alist;
    }
Copier après la connexion

3. Supprimez les éléments en double en parcourant puis en utilisant la méthode Remove

public static List heavyListMethod04(List<Object> list){
       for (int i=0;i<list.size()-1;i++){
           Object o =list.get(i);
           for (int j=i+1;j<list.size();j++){
               if(o.equals(list.get(j))){
                   list.remove(j);
                   j--;
               }
           }
       }
       return list;
    }
Copier après la connexion

4 (jdk1.8) Appelez la méthode stream pour. convertir la liste Pour un flux, supprimez les éléments en double dans le flux via distinct (basé en interne sur la méthode equals())

public static List heavyListMethod05(List<Object> list){
        list = list.stream().distinct().collect(Collectors.toList());
        return list;
    }
Copier après la connexion

Test de vérification :

public static void main(String[] args) {
        List list=new ArrayList();
        list.add(1);
        list.add(2);
        list.add(5);
        list.add(2);
        list.add(3);
        list.add(1);
        list.add(4);
        List list1 =heavyListMethod01(list);
        System.out.println("1----"+list1);//[1, 2, 3, 4, 5]
        List list2 =heavyListMethod02(list);
        System.out.println("2----"+list2);//[1, 2, 3, 4, 5]
        List list3 =heavyListMethod03(list);
        System.out.println("3----"+list3);//[1, 2, 5, 3, 4]
        List list4 =heavyListMethod04(list);
        System.out.println("4----"+list4);//[1, 2, 5, 3, 4]
        List list5 =heavyListMethod05(list);
        System.out.println("5----"+list5);//[1, 2, 5, 3, 4]
    }
Copier après la connexion

Articles et tutoriels connexes recommandés : Démarrer avec Java à partir de zéro

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal