Combina dos listas de objetos sin duplicados

Tengo tres clases de objetos:

public class Section{
    private Integer id;
    private List<Program> programs;
}

public class Program{
    private String title;
    private Integer id;
    private List<Broadcast> broadcasts = null;
}

public class Broadcast {
    private Integer id;
    private String title;
}

Y tengo dos listas de objetos Sección: List<Section> oldSectionsy List<Section> newSections. Necesito verificar si oldSectionscontiene todas las Secciones de la newSectionslista, para determinar esto tengo que comparar los valores de identificación. si no es así, necesito agregar esta Sección a las Secciones antiguas y si lo hace, entonces tengo que hacer la misma verificación para Programas y Difusiones.

Traté de iterar a través de todas las secciones, programas y transmisiones, pero no parece ser una buena solución. ¿Cuál sería el mejor enfoque?

    private void updateSections(List<Section> oldSections, List<Section> newSections){
        for(Section newSection: newSections){
            boolean alreadyAdded = false;
            for(Section oldSection: oldSections){
                if(newSection.getId() == oldSection.getId()){
                    alreadyAdded = true;
                }
            }
            if(!alreadyAdded){
                oldSections.add(newSection);
            } else {
                //HERE I HAVE TO COMPARE PROGRAMS AND THEN BROADCASTS
            }
        }
    }
Respuesta 1

Un conjunto es una lista que puede ayudarlo a evitar duplicados.

Simplemente puede anular los métodos equals y hashCode de su objeto Java Bean / POJO y usar set. De esta forma, se rechazará una entrada duplicada y ya no tendrá que fusionar sus datos. Los elementos de tu lista son siempre únicos.

Eche un vistazo a este hilo para ver cómo implementar Set en java -> Verifique que haya una combinación de cadena única

Respuesta: 2

Quiero ejecutar pruebas de selenio desde TeamCity usando Maven en el servidor Linux sin pantalla. Mientras ejecuto las pruebas de Selenium, recibo el siguiente error en TeamCity: no se pudo ejecutar el objetivo org.codehaus ...

Por favor, considere la clase de prueba de Java a continuación. ¿Por qué el método test2 () se compila correctamente, pero test1 () no? import java.util.Arrays; import java.util.List; Prueba de clase pública {public <N ...

Tengo un problema al almacenar algunos valores de caracteres especiales en db. Por ejemplo, si estoy agregando los siguientes valores a cualquier cuadro de texto, Езикова abc está almacenando los valores como ??????? abc dentro de db. Yo tengo ...

Estoy convirtiendo una base de código existente para construir a través de Maven. Configuré mis dependencias correctamente, pero Maven en realidad incluye todos los archivos de dependencias compilados en el jar resultante. Quiero poder ...