Programa Java para encontrar la intersección entre dos colecciones

Colección significa un conjunto de diferentes clases e interfaces que se agrupan en una sola unidad que tiene funciones similares, se denomina colección y un marco que sabemos muy bien que proporciona colecciones predefinidas en Java. Aquí discutiremos cómo encontrar la intersección entre las dos colecciones, es decir, eliminar todos los elementos de la primera colección si no está disponible en la segunda colección.

En este artículo, utilizaremos dos clases de marco de colección, la clase vectorial y la clase ArrayList, para encontrar la intersección entre las dos colecciones.

Métodos:

  1. Usando el método ArrayList.contains()
  2. Usando el método Vector.retainAll()

Enfoque 1: 

  • Almacene los elementos en la Primera colección y en la segunda colección (Lista de arreglos).
  • Ahora iterar la primera colección y verificar si la segunda colección contiene elementos de la primera colección o no.
  • Si no contiene, elimine el elemento de la primera colección.
  • Imprime la primera colección.

Ejemplo:

Java

// Java Program to Remove All the Elements from the First
// Collection if it is not Available in the Second
// Using ArrayList.contains() Method 
 
// Importing input output classes
import java.io.*;
// Importing utility classes
import java.util.*;
 
// Main class
public class GFG {
 
    // Method 1 of this class
    // To remove the elements from the collection
    static ArrayList<Integer>
    RemoveElements(ArrayList<Integer> A,
                   ArrayList<Integer> B)
    {
        // Iterating over elements in object
        // using for loop
        for (int i = 0; i < A.size(); ++i) {
 
            // Removing the elements from the collection
            if (B.contains(A.get(i)) == false) {
                A.remove(i);
            }
        }
 
        // Returning the update ArrayList
        return A;
    }
 
    // Method 2 of this class
    // To print the collection
    static void print(ArrayList<Integer> A)
    {
        // Iterating over elements in object
        // using for-each loop
        for (int element : A) {
 
            // Printing the elements of the linked list
            System.out.print(element + " ");
        }
    }
 
    // Method 3 of this class
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of ArrayList class
        // Declaring object of Integer type
        ArrayList<Integer> A = new ArrayList<>();
 
        // Inserting elements to ArrayList object
        // Custom input entries
        A.add(1);
        A.add(2);
        A.add(3);
        A.add(4);
 
        // Creating another object of ArrayList class
        // Again declaring object of Integer type
        ArrayList<Integer> B = new ArrayList<>();
 
        // Inserting elements to ArrayList object
        // Custom input entries
        B.add(1);
        B.add(2);
        B.add(3);
 
        // Calling the Function
        ArrayList<Integer> UpdatedCollection
            = RemoveElements(A, B);
 
        // Lastly printing the updated collection
        print(A);
    }
}
Producción

1 2 3 

Complejidad de tiempo: O(n)

Complejidad espacial: O(n)

Enfoque 2: Usar el método Vector.retainAll()

  • Almacene los elementos en la Primera colección y en la segunda colección (Vector).
  • Ahora usa el método Vector.retainAll()
  • Imprime la primera colección.

Ejemplo:

Java

// Java Program to Remove All the Elements from the First
// Collection if it is not Available in the Second
// Using Vector.retainAll() method
 
// Importing libraries
import java.io.*;
import java.util.*;
 
// Main class
public class GFG {
    // Method 1 of this class
    // To remove the elements from the collection
    static Vector<Integer> RemoveElements(Vector<Integer> A,
                                          Vector<Integer> B)
    {
        A.retainAll(B);
        // Returning the update ArrayList
        return A;
    }
    // Method 2 of this class
    // To print the collection
    static void print(Vector<Integer> A)
    {
        // Iterating elements in object using for loop
        for (int element : A) {
 
            // Printing the elements of the linked list
            System.out.print(element + " ");
        }
    }
 
    // Method 3 of this class
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an ArrayList object
        // Declaring object of integer type
        Vector<Integer> A = new Vector<>();
 
        // Inserting elements in the ArrayList
        // Custom input entries
        A.add(1);
        A.add(2);
        A.add(3);
        A.add(4);
 
        // Creating another ArrayList
        // Again declaring object of integer type
        Vector<Integer> B = new Vector<>();
 
        // Inserting elements in the ArrayList
        // Custom input entries
        B.add(1);
        B.add(2);
        B.add(3);
 
        // Calling the Method1 now to
        // remove the elements from the collection
        Vector<Integer> UpdatedCollection
            = RemoveElements(A, B);
 
        // Printing the updated collection
        print(A);
    }
}
Producción

1 2 3 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por zack_aayush 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 *