Maison  >  Article  >  Java  >  Révélation de cinq méthodes efficaces de déduplication de baies Java

Révélation de cinq méthodes efficaces de déduplication de baies Java

WBOY
WBOYoriginal
2023-12-23 14:46:101342parcourir

Révélation de cinq méthodes efficaces de déduplication de baies Java

Cinq méthodes efficaces de déduplication de tableaux Java révélées

Au cours du processus de développement Java, nous rencontrons souvent des situations où nous devons dédupliquer des tableaux. La déduplication consiste à supprimer les éléments en double dans un tableau et à n'en conserver qu'un seul. Cet article présentera cinq méthodes efficaces de déduplication de tableaux Java et fournira des exemples de code spécifiques.

Méthode 1 : utilisez HashSet pour supprimer les doublons

HashSet est une collection non ordonnée et sans doublon qui supprimera automatiquement les doublons lors de l'ajout d'éléments. Par conséquent, nous pouvons utiliser les caractéristiques de HashSet pour dédupliquer les tableaux.

public static int[] removeDuplicates(int[] arr) {
    Set<Integer> set = new HashSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

Méthode 2 : utilisez LinkedHashSet pour conserver l'ordre des éléments sans duplication

LinkedHashSet est un ensemble ordonné non dupliqué, qui sera trié en fonction de l'ordre d'insertion des éléments. En utilisant LinkedHashSet, vous pouvez supprimer les doublons et conserver l'ordre des éléments.

public static int[] removeDuplicates(int[] arr) {
    Set<Integer> set = new LinkedHashSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

Méthode 3 : utiliser l'API Stream pour dédupliquer des tableaux

Java 8 a introduit l'API Stream, qui peut convertir le tableau en flux via la méthode stream(), puis effectuer la déduplication via la méthode distinct().

import java.util.Arrays;
import java.util.stream.Collectors;

public static int[] removeDuplicates(int[] arr) {
    return Arrays.stream(arr).distinct().toArray();
}

Méthode 4 : utilisez TreeSet pour le tri et la déduplication

TreeSet est un ensemble ordonné non dupliqué qui trie les éléments selon leur ordre naturel. Les tableaux peuvent être dédupliqués et triés à l'aide d'un TreeSet.

public static int[] removeDuplicates(int[] arr) {
    Set<Integer> set = new TreeSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

Méthode 5 : Utiliser BitSet pour la déduplication

BitSet est une collection utilisée pour stocker les valeurs de bits et peut également être utilisée pour la déduplication. Nous pouvons supprimer les éléments en double en définissant la valeur du bit correspondant sur true.

public static int[] removeDuplicates(int[] arr) {
    BitSet bitSet = new BitSet();
    for (int num : arr) {
        bitSet.set(num);
    }
    int[] result = new int[bitSet.cardinality()];
    int index = 0;
    for (int i = bitSet.nextSetBit(0); i >= 0; i = bitSet.nextSetBit(i + 1)) {
        result[index++] = i;
    }
    return result;
}

Ci-dessus sont cinq méthodes efficaces de déduplication de tableaux Java. Choisir la méthode appropriée en fonction de la situation réelle peut traiter la baie plus efficacement pendant le processus de déduplication. J'espère que cet article vous aidera à résoudre le problème de la déduplication de tableau dans le développement Java !

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!

Déclaration:
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