Iterator it=set.iterator();
while(it.hasNext()){
Product p=(Product)it.next();
System.out.println(p.getName()+"--"+p.getPrice()+"--"+p.getPlace()+"-"+p.getId());
}如果使用迭代,显示的价格是0.0,为什么嗯?

解决方案 »

  1.   

    可以的啊[com.test.demo.M812.Product@de6ced, com.test.demo.M812.Product@c17164, com.test.demo.M812.Product@1fb8ee3, com.test.demo.M812.Product@61de33]
    钢笔--0.0
    货币战争--0.0
    可口可乐--0.0
    柯蓝村井水--0.0
      

  2.   

    System.out.println(set); 实际上是
     System.out.println(set.toString());TreeSet  用的是Object 中的toString方法。
      

  3.   

    public Product(int id,String name,double price,String place,Date date){
            super();
            this.id=id;
            this.name=name;
            this.place=place;
            this.price=price;
            this.date=date;
        }
      

  4.   

    上面错了。应该是。  this.price=price; 没加。
      

  5.   

    3楼说的有道理,如果你想直接输出,就要自己重写toString()方法。
      

  6.   

    3楼正解 
    楼主实现了Comparable 接口,重写了比较方法
    用system 输出set 时,调用的是set 的toString 方法
    set 没有重写Object的toString 方法,所以打印的是地址