gpt4 book ai didi

java - 我的 Treeset 仅添加 1 个类对象

转载 作者:行者123 更新时间:2023-12-01 18:01:46 24 4
gpt4 key购买 nike

我正在尝试将以下书籍对象添加到 TreeSet 中。但是,当我调试代码时,它说该集合的大小为 1 并且仅包含添加的第一个对象(book1)。当我注释掉book1时,只添加了book2等等。
为什么JVM只能识别一个对象?

代码:

 public static void main(String[] args) {
Set<Book> bookSet = new TreeSet<Book>();

Book book1 = new Book("Digital Fortress", "Dan Brown", "St. Martins Press", 1998);
Book book2 = new Book("Angels and Demons", "Dan Brown", "Pocket Books", 2000);
Book book3 = new Book("Deception Point", "Dan Brown", "Pocket Books", 2001);
Book book4 = new Book("The Davinci Code", "Dan Brown", "DoubleDay", 2003);
Book book5 = new Book("The Lost Symbol", "Dan Brown", "DoubleDay", 2009);
Book book6 = new Book("Inferno", "Dan Brown", "DoubleDay", 2013);

bookSet.add(book1);
bookSet.add(book2);
bookSet.add(book3);
bookSet.add(book4);
bookSet.add(book5);
bookSet.add(book6);

System.out.println(bookSet);
}

这是到目前为止的完整代码(它必须全部位于同一个类中):

  import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class Book implements Comparable<Book> {

String title;
String author;
String publisher;
int publicationYear;

List<String> authorList = new ArrayList<String>();

public Book(String title, String author, String publisher, int publicationYear){
this.title = title;
this.author = author;
this.publisher = publisher;
this.publicationYear = publicationYear;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public List<String> getAuthorList() {
return authorList;
}

public void setAuthorList(List<String> authorList) {
this.authorList = authorList;
}

public String getPublisher() {
return publisher;
}

public void setPublisher(String publisher) {
this.publisher = publisher;
}

public int getPublicationYear() {
return publicationYear;
}

public void setPublicationYear(int publicationYear) {
this.publicationYear = publicationYear;
}

public String getAuthor() {
return author;
}

public void setAuthor(String author) {
this.author = author;
}


public String toString(){
return "Book Title: " + getTitle() + "\nAuthor Name: " + getAuthor() + "\nPublisher: " + getPublisher() + "\nYear of Publication: " + getPublicationYear();
}

public static void main(String[] args) {
Set<Book> bookSet = new TreeSet<Book>();

Book book1 = new Book("Digital Fortress", "Dan Brown", "St. Martins Press", 1998);
Book book2 = new Book("Angels and Demons", "Dan Brown", "Pocket Books", 2000);
Book book3 = new Book("Deception Point", "Dan Brown", "Pocket Books", 2001);
Book book4 = new Book("The Davinci Code", "Dan Brown", "DoubleDay", 2003);
Book book5 = new Book("The Lost Symbol", "Dan Brown", "DoubleDay", 2009);
Book book6 = new Book("Inferno", "Dan Brown", "DoubleDay", 2013);

bookSet.add(book1);
bookSet.add(book2);
bookSet.add(book3);
bookSet.add(book4);
bookSet.add(book5);
bookSet.add(book6);

System.out.println(bookSet);
}

@Override
public int compareTo(Book o) {
// TODO Auto-generated method stub
return 0;
}

}

最佳答案

所有书籍都彼此相等(通过返回 0 即可看出)。 Set 不能包含重复项,因此这就是为什么只添加一本书(第一本书)

@Override
public int compareTo(Book o) {
// TODO Auto-generated method stub
return 0;
}

您需要填写方法的详细信息。负数表示这本书小于o,正数则反之

关于java - 我的 Treeset 仅添加 1 个类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40383909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com