ciao!

creo due ArrayList di questo tipo eseguendo query su db diversi:
codice:
@Setter
@Getter
@AllArgsConstructor
public class Timesheet {
  Integer idTimeSheet;
  Timestamp dataOraInizio;
  Timestamp dataOraFine;
  Integer minLvaorate;
}
devo unire queste due liste, ma levando i duplicati.
i duplicati li devo trovare in base al campo idTimeSheet.

come posso fare?

questo il codice in cui riempio le liste:
codice:
    MapSqlParameterSource mapSqlParameterSource = new MapSqlParameterSource();
    mapSqlParameterSource.addValue("id", idProgetto);


    String queryOld = "SELECT * FROM Timesheet " +
        "INNER JOIN Progetto ON idProgetto = Timesheet.codProgetto " +
        "WHERE Timesheet.codProgetto = :id";
    List<Timesheet> listOld = jdbcTemplate.query(
        queryOld,
        mapSqlParameterSource,
        (rs, rowNum) -> new Timesheet(
            rs.getInt("idTimeSheet"),
            rs.getTimestamp("DataOraInizio"),
            rs.getTimestamp("DataOraFine"),
            rs.getInt("MinLavorate")
        )
    );


    String queryNew = "SELECT * FROM timesheets " +
        "INNER JOIN ps_progetto_sede ON id_sede = cod_sede_progetto " +
        "WHERE id_progetto = :id";
    List<Timesheet> listNew = mysqlTemplate.query(
        queryNew,
        mapSqlParameterSource,
        (rs, rowNum) -> new Timesheet(
            rs.getInt("id_timesheet_old"),
            null,
            null,
            0
        )
    );

// UNIRE LISTE SENZA DUPLICATI
ho provato a cercare in giro, ma ho trovato parecchi esempi in cui restituiscono nuovi ArrayList di stringhe/int.
oppure partono dal presupposto di avere ArrayList con oggetti "semplici" e non custom come nel mio caso.