JavaTreeMap的问题,麻烦帮忙看看,谢谢了

//创建book对象
//Book2 book=new Book2();
//创建TreeMap对象
TreeMap tm=new TreeMap();
tm.put(new Book2("1896-09-01","平方的世界"),"1001");
tm.put(new Book2("2012-12-01","白说"),"1002");
tm.put(new Book2("2014-09-01","创业维艰"),"1003");
//获取迭代器
Set> set=tm.entrySet();
Iterator it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

    为什么只添加了一个键值,其他的都没有添加进去,求解,谢谢了

Book2怎么实现的,其中hashCode和equals有没有重写。是否将不同的书名、日期视作不同的书?

 /* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
class Book2 implements Comparable
{ 
    public String date; public String name; 
    public Book2(String s1, String s2)
    {
        name = s1;
        date = s2;
    }
    public int compareTo(Object o) 
    {
        Book2 b = (Book2)o;
        return name.compareTo(b.name);
    }
    public String toString()
    {
        return name + "\t" + date;
    }
}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        //创建book对象
        //Book2 book=new Book2();
        //创建TreeMap对象
        TreeMap<Book2,String> tm=new TreeMap<Book2,String>();
        tm.put(new Book2("1896-09-01","平方的世界"),"1001");
        tm.put(new Book2("2012-12-01","白说"),"1002");
        tm.put(new Book2("2014-09-01","创业维艰"),"1003");
        //获取迭代器
        Set<Map.Entry<Book2,String>> set=tm.entrySet();
        Iterator it=set.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}

1896-09-01 平方的世界=1001
2012-12-01 白说=1002
2014-09-01 创业维艰=1003

都添加了,都输出了,没问题