El constructor de copia crea una copia dependiente.

Implementé el constructor de copia como se describe.aquí. Pero aun así el problema es que cuando actualizoroute_copy, entonces la misma actualización se aplica aroute. Entonces, ¿no entiendo lo que está mal en mi código?

public class Route implements Comparable<Route> {
    private List<Site> sites;

    public Route()
    {
        sites = new ArrayList<Site>();
    }

    public Route(List<Site> sites)
    {
        this.sites = sites;
    }

    /**
     * Copy constructor
     */
    public Route(Route r) {
        this(r.sites);
    }

    public void deleteSite(Site s) {
        this.sites.remove(s);
    }
}

public processData(Route route)
{
  Route route_copy = new Route(route);
  Site s = selectSite(route_copy);
  route_copy.deleteSite(s); // !!! now 'route' does not contain an  element 's'
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta