Java管理系统,为什么TreeSet集合的全部元素添加不到另一个TreeSet集合里面?

//      trees.addAll(tree);就是这里,这里添加不了另一个集合的全部元素,求解,谢谢了


//查看图书的功能
public void cheekBook(MyCompartor cm){
    TreeSet<Book> trees=new TreeSet<Book>(cm);
    trees.addAll(tree);
    if(trees.isEmpty()){
        System.out.println("请添加图书!!!");
    }
    else{
        System.out.println("查看图书");
        System.out.println("|书名|     |作者|     |出版社|    |价格|   |书号|   |出版日期|");
        Iterator<Book> it=trees.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}


//添加图书
public boolean addBook(String bookName, String author, String press, String price, String bookID, String pubdate){
    book=new Book();//为什么要这样做,这样才不会覆盖之前传的值,保证每次对象不一样
    boolean bl2=false;
    book.setBookName(bookName);
    book.setAuthor(author);
    book.setPress(press);
    book.setPrice(price);
    book.setBookID(bookID);
    book.setPubdate(pubdate);
    System.out.println("新书信息如下:"+book.toStrings());
    System.out.println("是否保存该书? (Y)是 (N)否");
    option=sc.next();
    if("y".equalsIgnoreCase(option)){
        System.out.println("正在添加....");
        tree.add(book);//把图书的信息添加到tree集合中
        bl2=true;
    }
    else{
        System.out.println("已取消");
    }
    return bl2;
}

两个List 的泛型一样吗?,并且Book里面的字段,类型一样吗?