为什么这段TreeSet只能打印第一段

元宵p 发布于 2017/03/19 14:16
阅读 95
收藏 1

import java.util.*;

class Student implements Comparable
{
    private String name;
    private int age;

    Student(String name,int agr){
        
        this.name =name;
        this.age =age;

    }

    public void setName(String n){
    
        this.name =n;
    }

    public void setAge(int a){
    
        this.age =a;
    }

    public String getName(){
        
        return name;
    }

    public int getAge(){
        
        return age;
    }

    public int compareTo(Object obj){
        if (!(obj instanceof Student))
        {
            throw new RuntimeException("bushi");
        }

        Student st =(Student)obj;
        
        TreeSetTest.sop(this.name+"---compareTo----"+st.name);

        if (this.age > st.age)
            return 1;
        if (this.age == st.age)
            return 0;
        return -1;
    }
}

public class TreeSetTest
{
    public static void main(String []args){
        
        TreeSet ts =new TreeSet();

        ts.add(new Student("lisi01",10));
        ts.add(new Student("lisi02",11));
        ts.add(new Student("lisi03",13));
        ts.add(new Student("lisi01",10));
        ts.add(new Student("lisi02",12));

        for (Iterator i =ts.iterator(); i.hasNext(); )
        {
            Student stu =(Student)i.next();

            sop(stu.getName()+"----------"+stu.getAge());
        }

    }

    public static void sop(Object obj){
    
        System.out.println(obj);
    }
}

加载中
0
张恒强
张恒强
输出是啥啊?你想要的又是啥啊
元宵p
元宵p
我想把ts集合中的元素全部打印出来,可是只打印了一行。
0
元宵p
元宵p

只打印了这一个 ts.add(new Student("lisi01",10));。后面的没有打印。。但覆写了CompareTo,里面调用了,但就是不打印后来的ts。。

 

0
元宵p
元宵p

lisi01---compareTo----lisi01
lisi02---compareTo----lisi01
lisi03---compareTo----lisi01
lisi01---compareTo----lisi01
lisi02---compareTo----lisi01
lisi01----------0

 

--------------------------------

输出结果是这个,想把lisi01后面的元素打印出来,求大牛帮忙,小菜鸟求助。。。

 

返回顶部
顶部