POO-ITBA / 2023_02

0 stars 0 forks source link

1C 2023 - Ej 2 #10

Open SrMathew opened 1 year ago

SrMathew commented 1 year ago

Holas buenas tardes,

quería consultarle con respecto a la solución propuesta ya que en ella en la clase VideoCatalogElement primero figura el objeto comparandolo con la instancia de la siguiente forma:

@Override
   public int compareTo(VideoCatalogElement o) {
       int cmp = o.airedDate.compareTo(airedDate);
       if(cmp == 0) {
           cmp = title.compareTo(o.title);
       }
       return cmp;
   }

Tenía entendido que primero se especifica la instancia y se la compara con el objeto parámetro de la siguiente forma:

@Override
   public int compareTo(VideoCatalogElement o) {
       int cmp = this.airedDate.compareTo(o.airedDate);
       if(cmp == 0) {
           cmp = this.title.compareTo(o.title);
       }
       return cmp;
   }

Aclarando que también en la clase VideoCatalog los métodos para listar quedarían de la siguiente forma:

public VideoCatalogElement[] getDescendingDateCopy(){
        return getCopy( Comparator.reverseOrder() );
    }

    public VideoCatalogElement[] getChronologicalDateCopy(){
        return getCopy( Comparator.naturalOrder() );
    }

siendo que en las soluciones figura de la siguiente forma:

public VideoCatalogElement[] getDescendingDateCopy(){
        return getCopy( Comparator.naturalOrder() );
    }

    public VideoCatalogElement[] getChronologicalDateCopy(){
        return getCopy( Comparator.reverseOrder() );
    }

Desde ya muchas gracias

fmeola commented 1 year ago

Hola @SrMathew Si planteás

o.airedDate.compareTo(airedDate);

estás logrando un orden descendente por fecha. En cambio si planteás

this.airedDate.compareTo(o.airedDate)

estás logrando un orden ascendente por fecha. Depende del ejercicio y del orden que te pidan para decirte cuál de las dos es correcta.

SrMathew commented 1 year ago

Okaa gracias profe!!

Recien lo estaba editando porque me había olvidado de aclarar que tenia que cambiar reverseOrder() por naturalOrder() en getDescendingDateCopy() de la clase VideoCatalog