美文网首页
day15-02/03-集合框架(TreeSet存储自定义对象)

day15-02/03-集合框架(TreeSet存储自定义对象)

作者: 姗婷 | 来源:发表于2020-06-22 19:14 被阅读0次

往TreeSet集合中存储自定义对象学生。

想按照学生的年龄进行排序。

记住:排序时,主要条件相同时,一定要判断次要条件。

TreeSet:可以对Set集合中的元素进行排序
底层数据结构是二叉树。
保证元素唯一性的依据
comparenTo方法return 0。

return -1,小到大,升序排列。
return 1,大到小,降序排列。
return 0,只取一个。

TreeSet拍下的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法,这种方式也称为元素的自然顺序。或者叫默认顺序。


二叉树.PNG
import java.util.*;


class Student implements Comparable//该接口强制让学生具备比较性
{
    private String name;
    private int age;
    Student(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
    //复写compareTo方法
    public int compareTo(Object obj)
    {
/*return -1,小到大,升序排列。
return 1,大到小,降序排列。
return 0,只取一个。
*/
return -1;
/*
        if(!(obj instanceof Student))
            throw new RuntimeException("不是学生对象");
        Student s = (Student)obj;

        System.out.println(this.name+"....compareto"+s.name);
        
        //判断主要条件
         if(this.age>s.age)
             return 1;
         if(this.age ==s.age)
             //判断次要条件
             return this.name.compareTo(s.name);
         return -1;
*/  
    }
    public String getName()
    {
        return name;
    }
    public int getAge()
    {
        return age;
    }
}


class TreeSetTest
{
    public static void main(String[] args) 
    {
        TreeSet ts = new TreeSet();
        ts.add(new Student("lisi02",22));
        ts.add(new Student("lisi007",20));
        ts.add(new Student("lisi09",19));
        ts.add(new Student("lisi08",19));
        //ts.add(new Student("lisi01",40));

        Iterator it =  ts.iterator();
        while(it.hasNext())
        {
            Student stu = (Student)it.next();
            sop(stu.getName()+"...."+stu.getAge());
        }
    }

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

相关文章

  • day15-02/03-集合框架(TreeSet存储自定义对象)

    往TreeSet集合中存储自定义对象学生。 想按照学生的年龄进行排序。 记住:排序时,主要条件相同时,一定要判断次...

  • TreeSet

    TreeSet如何比较自定义对象 Java中的TreeSet是Set的一个子类,TreeSet集合是用来对象元素进...

  • HashSet

    集合框架(HashSet存储自定义对象保证元素唯一性) ** A:案例演示 存储自定义对象,并保证元素唯一性。 重...

  • 集合框架(ArrayList存储字符串并遍历And存储自定义对象

    核心代码: 集合框架(ArrayList存储自定义对象并遍历) 核心代码块 邮箱:ithelei@sina.cn ...

  • 集合框架(TreeSet存储自定义对象并遍历练习)

    核心代码: // 邮箱:ithelei@sina.cn 技术讨论群:687856230 GoodLuck

  • 2018-04-17

    Java集合 ★★★★★集合框架:用于存储数据的容器。 特点: 1:对象封装数据,对象多了也需要存储。集合用于存储...

  • Java学习之集合框架

    一、集合框架的概述 1、概述: 1、简述:所谓集合,就是为方便对多个对象的操作,对对象进行存储。集合就是存储对象最...

  • JAVA集合框架

    一、集合框架 JAVA集合框架分为两大框架: 1.collection (存储独立对象) ListArraylis...

  • Java中ArrayList的中文拼音排序方法

    背景:ArrayList是我们最常用的集合框架之一。排序在使用TreeSet是非常方便,但是TreeSet集合有默...

  • TreeSet

    treeSet添加自定义元素:支持排序的集合类 treeSet要注意的事项:1. 往TreeSet添加元素的时候,...

网友评论

      本文标题:day15-02/03-集合框架(TreeSet存储自定义对象)

      本文链接:https://www.haomeiwen.com/subject/tdkuxktx.html