用Java完成下列要求。定义Book类: (1)成员变量:书号、书名、作者、出版社、出版日期 (2)重写equals()、hashcode()、toString() (3)实现自然排序:按书名升序 (4)实现定制排序:按作者、出版日期、出版社
时间: 2023-04-10 18:00:35 浏览: 69
我可以回答这个问题。下面是Java代码实现:
import java.util.*;
public class Book implements Comparable<Book> {
private String bookNo;
private String bookName;
private String author;
private String publisher;
private Date publishDate;
public Book(String bookNo, String bookName, String author, String publisher, Date publishDate) {
this.bookNo = bookNo;
this.bookName = bookName;
this.author = author;
this.publisher = publisher;
this.publishDate = publishDate;
}
public String getBookNo() {
return bookNo;
}
public void setBookNo(String bookNo) {
this.bookNo = bookNo;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public Date getPublishDate() {
return publishDate;
}
public void setPublishDate(Date publishDate) {
this.publishDate = publishDate;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
return Objects.equals(bookNo, book.bookNo) &&
Objects.equals(bookName, book.bookName) &&
Objects.equals(author, book.author) &&
Objects.equals(publisher, book.publisher) &&
Objects.equals(publishDate, book.publishDate);
}
@Override
public int hashCode() {
return Objects.hash(bookNo, bookName, author, publisher, publishDate);
}
@Override
public String toString() {
return "Book{" +
"bookNo='" + bookNo + '\'' +
", bookName='" + bookName + '\'' +
", author='" + author + '\'' +
", publisher='" + publisher + '\'' +
", publishDate=" + publishDate +
'}';
}
@Override
public int compareTo(Book o) {
return this.bookName.compareTo(o.bookName);
}
public static Comparator<Book> authorDatePublisherComparator = new Comparator<Book>() {
@Override
public int compare(Book o1, Book o2) {
int result = o1.author.compareTo(o2.author);
if (result == 0) {
result = o1.publishDate.compareTo(o2.publishDate);
if (result == 0) {
result = o1.publisher.compareTo(o2.publisher);
}
}
return result;
}
};
}
在Book类中,我们定义了成员变量:书号、书名、作者、出版社、出版日期。我们重写了equals()、hashcode()、toString()方法。我们还实现了自然排序:按书名升序。最后,我们实现了定制排序:按作者、出版日期、出版社。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)