Maison >Java >javaDidacticiel >Quelles sont les méthodes pour supprimer les doublons des tableaux Java ?

Quelles sont les méthodes pour supprimer les doublons des tableaux Java ?

DDD
DDDoriginal
2023-12-22 16:26:171619parcourir

Les méthodes de déduplication de tableau Java incluent : 1. À l'aide de l'API Stream de Java 8, vous pouvez utiliser la méthode "distinct()" de l'API Stream pour supprimer les éléments en double dans le tableau 2. Utilisez HashSet, qui est un ensemble qui ne peut pas contenir d'éléments en double, peut supprimer les éléments en double dans le tableau ; 3. Utiliser TreeSet est un ensemble ordonné et ne peut pas contenir d'éléments en double. Il convient de noter que l'utilisation de TreeSet nécessite un espace supplémentaire pour stocker les éléments.

Quelles sont les méthodes pour supprimer les doublons des tableaux Java ?

Le système d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.

En Java, il existe de nombreuses façons de supprimer les éléments en double d'un tableau. Voici quelques méthodes courantes :

1. Utilisation de l'API Stream de Java 8

Java 8 a introduit l'API Stream, qui rend le traitement des données plus concis et flexible. Vous pouvez utiliser la méthode distinct() de l'API Stream pour supprimer les éléments en double d'un tableau.

import java.util.Arrays;  
import java.util.stream.Collectors;  
  
public class Main {  
    public static void main(String[] args) {  
        int[] array = {1, 2, 3, 2, 1, 4, 5, 4};  
        int[] distinctArray = Arrays.stream(array).distinct().toArray();  
        System.out.println(Arrays.toString(distinctArray));  // 输出 [1, 2, 3, 4, 5]  
    }  
}

2. Utiliser HashSet

HashSet est un ensemble qui ne peut pas contenir d'éléments en double. Vous pouvez l'utiliser pour supprimer les éléments en double dans un tableau. Il convient de noter que l’utilisation de cette méthode modifiera l’ordre du tableau d’origine.

import java.util.Arrays;  
import java.util.HashSet;  
import java.util.Set;  
  
public class Main {  
    public static void main(String[] args) {  
        int[] array = {1, 2, 3, 2, 1, 4, 5, 4};  
        int[] distinctArray = new int[new HashSet<>(Arrays.asList(array)).size()];  
        int i = 0;  
        for (int num : array) {  
            if (Arrays.binarySearch(distinctArray, num) < 0) {  
                distinctArray[i++] = num;  
            }  
        }  
        System.out.println(Arrays.toString(distinctArray));  // 输出 [1, 2, 3, 4, 5]  
    }  
}

3. Utilisez TreeSet

TreeSet est un ensemble ordonné, il ne peut pas contenir d'éléments en double. Par rapport à HashSet, l'utilisation de TreeSet conservera l'ordre du tableau d'origine. Cependant, il convient de noter que l'utilisation de TreeSet nécessite un espace supplémentaire pour stocker les éléments, elle peut donc être plus coûteuse en utilisation de mémoire que HashSet.

import java.util.Arrays;  
import java.util.TreeSet;  
import java.util.Set;  
  
public class Main {  
    public static void main(String[] args) {  
        int[] array = {1, 2, 3, 2, 1, 4, 5, 4};  
        TreeSet<Integer> set = new TreeSet<>();  
        for (int num : array) {  
            set.add(num);  
        }  
        int[] distinctArray = new int[set.size()];  
        int i = 0;  
        for (int num : set) {  
            distinctArray[i++] = num;  
        }  
        System.out.println(Arrays.toString(distinctArray));  // 输出 [1, 2, 3, 4, 5]  
    }  
}

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