es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo eliminar duplicados comparando dos ArrayLists?

Así que tengo dos ArrayList (estos son solo un ejemplo) [Jeremy, Nick, Noah, Liam, Olivia] y [Elijah, Jeremy, Olivia, Sophia, Charlotte]. ¿Cómo puedo eliminar los duplicados “Jeremy” y “Olivia” ya que están en la segunda lista? Por lo tanto, la salida sería firstArr: [Nick, Noah, Liam] y la segunda lista no se modificaría. Aquí está mi método que no funciona.

java
public static ArrayList<string> removeDuplicates(ArrayList<string> firstArr, ArrayList<string> secArr) {
for (int i = 0; i < firstArr.size(); ++i) {
for (int p = 0; p < secArr.size(); ++p) {
if (firstArr.get(i).equals(secArr.get(p))) {
firstArr.remove(i);
p = secArr.size();
}
}
}
return firstArr;
}

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para eliminar los duplicados “Jeremy” y “Olivia” de la primera lista de arreglos basándose en su presencia en la segunda lista de arreglos, puedes modificar el método existente de la siguiente manera:

    public static ArrayList<string> removeDuplicates(ArrayList<string> firstArr, ArrayList<string> secArr) {
            for (int i = 0; i < firstArr.size(); i++) {
                if (secArr.contains(firstArr.get(i))) {
                    firstArr.remove(i);
                    i--; // disminuir el índice ya que el tamaño del arraylist ha cambiado
                }
            }
            return firstArr;
    }
    

    En este método modificado, estamos utilizando el método contains() de ArrayList para verificar si el elemento existe en la segunda lista de arreglos. Si existe, lo eliminamos de la primera lista de arreglos utilizando el método remove() y también disminuimos el índice ya que el tamaño de la lista ha cambiado. El método removeDuplicates() actualizado debería devolver la firstArr esperada con los duplicados “Jeremy” y “Olivia” eliminados.

Comments are closed.