You have to implement different comparators for different sorting types and pass them for Collections.Sort method. See Comparator
Class AuthorSort implements Comparator<Book>
{
public int compare(Book b1, Book b2){
// do comparision on Author
}
}
Implements Book Number Sorting
Class BookNoSort implements Comparator<Book>
{
public int compare(Book b1, Book b2){
// do comparision on Book Number
}
}
Call Sort method on Collections class and provide different implentation
Collections.sort(list, new BookNumberSort());
Collections.sort(list, new AuthorSort());