Ola a todos. Estou com uma duvida de como implementar um método do tipo Comparable. Tenho essas duas classes:
Book
public class Book implements Comparable {
private BookTag tag;
private int year;
private String title;
private int copies;
public Book(BookTag tag, int year, String title) {
this.tag = tag;
this.year = year;
this.title = title.toUpperCase();
this.copies = 1;
}
BookTag
public class BookTag implements Comparable {
private String left;
private int mid;
private String right;
public BookTag(String left, int mid, String right) {
check(left, mid, right);
this.left = left.toUpperCase();
this.mid = mid;
this.right = right.toUpperCase();
}
O exercício consiste em implementar uma serie de métodos que já foram desenhados.
Esse seria o primeiro metodo na classe Book:
@Override
public int compareTo(Object arg) {
/* Books are sorted by booktag. Books with lowest booktags go first */
}
Aqui não tenho muita ideia do que tenho que fazer porque com quais elementos vou comparar o argumento que é passado? Tentei algo assim: (return 0 é só para não deixar com erro)
@Override
public int compareTo(Object arg) {
/* Books are sorted by booktag. Books with lowest booktags go first */
Book book;
book = (Book)arg;
return 0;
}
O outro método também estou um pouco perdido que seria da classe BookTag:
@Override
public int compareTo(Object arg) {
/*
* Booktags are sorted as follows: - first go booktags with lowest left
* attribute. If left attributes cannot discriminate... - ... first go booktags
* with the lowest mid attribute. If mid cannot discriminate... - ... first go
* booktags with HIGHEST right attribute.
*/
/* COMPLETE */
return 0;
}