public class Drink implements Comparable{
public String name ;
public int compareTo(Object o){
return 0;
}
public static void main(String[] args) {
      Drink one=new Dog();
      Drink two=new Dog();
      one.name="Coffee";
      two.name="Tea";
   TreeSet set=new TreeSet();
   set.add(one);
   set.add(two);
  
A programmer iterates over the TreeSet and prints the name of each Drink object. 
What is the result? (意思大慨是输出每一个Drink对象的name的结果)A. Tea 
B. Coffe 
C. Coffe Tea 
D. Compilation fails. 
E. The code runs with no output 
F. An exception is thrown at runtime
Answer: ( B )
参考大纲:集合
不明白请高手讲解

解决方案 »

  1.   

    知识点1:
       set  存储:set 集合在存一个对象是,先判断这个对象 在set集合中没有(知识点2),如果在则不存,不在就存到set中。
    知识点2:
       如果得对象没有实现 Comparable接口,这调用这个对象的equal 方法,如果相等就判断为同一对象。实现了Comparable 接口,则调用compareTo 方法 。如果相等就判断为同一对象。
      

  2.   

    Drink one=new Dog();
      Drink two=new Dog();
    打错了,正确的是
    Drink one=new Drink();
      Drink two=new Drink();
      

  3.   

    public int compareTo(Object o){
    return 0;
    }
    上面这个方法在这里的目的说one,two两个对象都返回0所以两个对象一们是吗
      

  4.   

    TreeSet里面只装不相同的对象。它会调用Comparable接口的compareTo方法,而这道题目中,compareTo返回的是0,0的意思是不管是啥对象,对是相同的。所以TreeSet里面只装了1个对象,就是one(按照你add的先后顺序),one的name是coffe。所以是coffee