-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBook.java
More file actions
70 lines (56 loc) · 1.49 KB
/
Book.java
File metadata and controls
70 lines (56 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.util.Comparator;
public class Book implements Comparable <Book>
{
private String isbn;
private String title;
private String author;
public Book(String isbnIn, String titleIn, String authorIn)
{
isbn = isbnIn;
title = titleIn;
author = authorIn;
}
public String getISBN()
{
return isbn;
}
public String getTitle()
{
return title;
}
public String getAuthor()
{
return author;
}
@Override
public String toString()
{
return "(" + isbn +", " + title + ", " + author + ")";
}
@Override
public boolean equals (Object objIn)
{
Book bookIn = (Book) objIn;
return isbn.equals(bookIn.isbn);
}
@Override
public int hashCode()
{
return isbn.hashCode();
}
@Override
public int compareTo(Book bIn)
{
return isbn.compareTo(bIn.isbn);
}
// three Comparator<Book> implementations provided via static methods
// compare via isbns
public static Comparator<Book> ISBNCompare =
(book1, book2) -> {return book1.getISBN().compareTo(book2.getISBN());};
// compare via titles
public static Comparator<Book> TitleCompare =
(book1, book2) -> {return book1.getTitle().compareTo(book2.getTitle());};
// compare via authors
public static Comparator<Book> AuthorCompare =
(book1, book2) -> {return book1.getAuthor().compareTo(book2.getAuthor());};
}