3点提醒你,希望能帮到你。看下面代码。
- class Student
- {
- private String name;
- private int age;
- Student(String name,int age)
- {
- this.name=name;
- this.age=age;
- }
- public void setName(String age)
- {
- this.name=name;
- }
- public void setAge(int age)
- {
- this.age=age;
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- }
- class TreeSetDemo
- {
- public static void main(String[] args)
- {
- TreeSet ts=new TreeSet();
- //1.TreeSet底层数据结构是二叉树,先比较,再存入,那么往TreeSet对象中存入元素时,元素必须具备比较性。
- //如果元素是字符串,如下,那么字符串自身具备比较性,那么自然编译执行都没问题。
- ts.add("abef");
- ts.add("bdh");
- ts.add("zxc");
- //2.如果元素是Student类的对象,Student对象不具备比较性,那么会报异常说没有实现Comparable接口,所以要实现Comparable接口,并复写compareTo方法,让Student对象具备比较性。
- //3.在你的代码中尝试了只将一个Student对象存入,那当然没问题,因为只有一个Student对象元素不需要比较。
- ts.add(new Student("shiyanfang01",23));
- ts.add(new Student("shiyanfang02",35));
- ts.add(new Student("shiyanfang03",28));
- for (Iterator it=ts.iterator();it.hasNext() ; )
- {
- Student stu=(Student)it.next();
- System.out.println(stu.getName()+".."+stu.getAge());
- }
- }
- }
复制代码 |