¿Cómo eliminar elementos duplicados del vector en Java?

Usando LinkedHashSet y TreeSet , se eliminan los elementos duplicados. Porque LinkedHashSet y TreeSet no aceptan elementos duplicados. 

Ejemplo:

Input : vector = [1, 2, 3, 4, 2, 4]
Output: vector = [1, 2, 3, 4]

Input : vector = [a, b, a, c, d, a]
Output: vector = [a, b, c, d]

Enfoque 1: uso de LinkedHashSet

LinkedHashSet no acepta elementos duplicados y tampoco mantiene el orden ordenado.

  1. Crear vector y agregar elementos en el vector.
  2. Cree LinkedHashSet y el objeto vectorial se pasa al constructor de LinkedHashSet.
  3. Borrar todos los elementos del vector.
  4. Agregue todos los elementos de LinkedHashSet en vector.

A continuación se muestra la implementación del enfoque anterior:

Java

// Java Program to remove duplicate 
// elements from Vector
import java.util.LinkedHashSet;
import java.util.Vector;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        Vector<Integer> vector = new Vector<Integer>();
  
        vector.add(2);
        vector.add(2);
        vector.add(4);
        vector.add(2);
        vector.add(3);
        vector.add(2);
        vector.add(1);
  
        // display original elements
        System.out.println("Display original Vector - "
                           + vector);
  
        // convert Vector to a LinkedHashSet object.
        LinkedHashSet<Integer> hashSet
            = new LinkedHashSet<Integer>(vector);
  
        // clear all elements of vector
        vector.clear();
  
        // add all unique elements LinkedHashSet to the
        // vector
        vector.addAll(hashSet);
  
        // display vector after removing duplicate elements
        System.out.println(
            "After removing duplicate elements - "
            + vector);
    }
}
Producción

Display original Vector - [2, 2, 4, 2, 3, 2, 1]
After removing duplicate elements - [2, 4, 3, 1]

Complejidad de Tiempo: O(N), donde N es la longitud del Vector original.

Enfoque 2: TreeSet

TreeSet no acepta elementos duplicados y TreeSet mantiene el orden ordenado.

  1. Crear vector y agregar elementos en el vector.
  2. Cree TreeSet y el objeto vectorial se pasa al constructor de TreeSet.
  3. Borrar todos los elementos del vector.
  4. Agregue todos los elementos de TreeSet en vector.

A continuación se muestra la implementación del enfoque anterior:

Java

// Java Program to remove duplicate 
// elements from Vector
import java.util.TreeSet;
import java.util.Vector;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create vector
        Vector<Integer> vector = new Vector<Integer>();
  
        // add elements in vector
        vector.add(4);
        vector.add(2);
        vector.add(3);
        vector.add(1);
        vector.add(3);
        vector.add(2);
        vector.add(4);
  
        // display original vector
        System.out.println("Display original Vector - "
                           + vector);
  
        // convert Vector to a TreeSet object.
        TreeSet<Integer> treeSet
            = new TreeSet<Integer>(vector);
  
        // clear all elements of vector
        vector.clear();
  
        // add all unique elements of TreeSet to the vector
        vector.addAll(treeSet);
  
        // display vector after removing duplicate elements
        System.out.println(
            "After removing duplicate elements - "
            + vector);
    }
}
Producción

Display original Vector - [4, 2, 3, 1, 3, 2, 4]
After removing duplicate elements - [1, 2, 3, 4]

Complejidad de tiempo: O (n log n), porque TreeSet usa la implementación del árbol RedBlack. 

Publicación traducida automáticamente

Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *