[javaSE] 集合框架(TreeSet)

TreeSet:可以对Set集合中的元素排序,默认按照ascii表排序,二叉树结构

左边叉是小的,右边叉是大的

存储自定义对象

定义一个类Student实现Comparable类,使自定义类具备比较性

定义属性年龄age

定义属性姓名name

实现compareTo()方法,传递进来另一个Student对象

判断当前Student对象的age大于另一个Student对象的age,返回1,否则返回-1

获取Student对对象

调用TreeSet对象的add()方法,参数:Student对象

遍历集合

import java.util.TreeSet;

public class TreeSetDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        TreeSet<Student> treeset=new TreeSet<Student>();
        treeset.add(new Student("taoshihan1",30));
        treeset.add(new Student("taoshihan2",20));
        treeset.add(new Student("taoshihan3",40));
        for(Student student:treeset){
            System.out.println(student.name+"==="+student.age);
        }

    }

}
class Student implements Comparable<Student>{

    public int age;
    public String name;
    public Student(String name,int age) {
        this.name=name;
        this.age=age;
    }
    @Override
    public int compareTo(Student o) {
        if(o.age<this.age){
            return 1;
        }else{
            return -1;
        }
    }

}

结果:

taoshihan2===20

taoshihan1===30

taoshihan3===40

时间: 2024-09-29 02:29:33

[javaSE] 集合框架(TreeSet)的相关文章

javaSE集合框架

7.集合框架  集合: Collection接口   : -List接口  (有序的,通常允许重复)   -实现类:ArrayList(用可变数组实现,不是同步的(线程不安全)) :适合查找,添加  LinkedList(双向链表的实现,不是同步的):适合插入,删除    Vector(用可变数组实现,同步的):适合查找,添加 -Set接口  (无序的,不允许重复) -实现类:HashSet(无序的,不同步,不允许重复)     TreeSet(有序的,不同步,不允许重复) Collection

[javaSE] 集合框架(体系概述)

为什么出现集合类 为了方便对多个对象的操作,对对象进行存储,集合就是存储对象最常用的一种方式 数组和集合的不同 数组是固定长度的,集合是可变长度的 数组可以存储基本数据类型,集合只能存储对象 数组只能存储同一种对象,集合可以存储多种对象 常见体系 容器有很多种,有特性和共性,我们对共性进行不断的向上抽取,就形成了一个体系,这就是集合框架 最顶层Collection接口,分出两个常用的子接口List和Set List接口分出三个常见的ArrayList,LinkedList,Vector Set接

黑马程序员-Java基础-集合框架-TreeSet、二叉树、泛型

第一讲 TreeSet 1.  概述 TreeSet可以对Set集合中的元素进行排序,按照自然顺序排. 2.  演示代码 输出结果: 总结:TreeSet会对元素进行自然排序,大写排在小写前面. 第二讲  TreeSet存储自定义对象 1. 概述: 将自定义对象存储到TreeSet集合中. 2. 思路: 自定义学生类,并将学生对象存储到TreeSet中,在存储过程中按照年龄排序. 3. 练习:往TreeSet集合中存储自定义对象(学生),并按照学生年龄进行排序 小结: 自定义对象需要重写Comp

《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解

这一篇对TreeSet做介绍,先看一个简单的例子: * TreeSet:能够对元素按照某种规则进行排序. * 排序有两种方式 * A:自然排序: 从小到大排序 * B:比较器排序    Comparator import java.util.TreeSet; * TreeSet集合的特点:排序和唯一 * * 通过观察TreeSet的add()方法,我们知道最终要看TreeMap的put()方法.因为TreeMap是NavigableMap接口的实现类 */ public class TreeSe

java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)

/*TreeSet * treeSet存入数据后自动调用元素的compareTo(Object obj) 方法,自动对数据进行排序 * 所以输出的数据是经过排序的数据 * 注:compareTo方法返回值有:负数,零,正数.分别表示小于,等于,大于 * 对于存入自定义的对象元素,要重写元素的compareTo(Object obj)方法 * 元素定义时,需要实现Comparable接口 * */ 1 import java.util.Iterator; 2 import java.util.Tr

java 集合框架-TreeSet

/* TreeSet可以对Set集合中的对象进行排序: 原理,TreeSet在底层调用了Comparable接口的方法compareTo(). 所以,在使用TreeSet存储自定义对象时,要想实现自定义类对象的自然排序,需要类实现Comparable接口,并重写覆盖接口唯一的方法compareTo(). 需求: 往TreeSet集合中存储自定义对象学生. 想按照学生的年龄进行排序. 记住:排序时,当主要条件相同时,一定判断一下次要条件. 在本例中,出现了两个同学的年龄是一样的,如果不进行判断次要

JAVA-初步认识-常用对象API(集合框架-treeset集合-二叉树)

一. treeset集合可以对其中的元素进行排序,它有两种排序方法,现在我们想知道它底层是什么结构,它是怎么确定元素位置的?它是有原因的,而且它这种结构对于排序而言,效率很高. 一说到排序,之前说到选择冒泡.选择冒泡对于比较次数而言,比较多一些,因为是转着圈在比.对于treeset而言,有个比较好的地方就是 将例子中的元素按照年龄排序,演示一遍它是怎么存放的. 存zhangsan,28的时候,就在容器中搞了一个zhangsan,28.容器中只有一个元素,不进行比较.紧跟着再来个lisi,21,l

[javaSE] 集合框架(迭代器)

当我们创建一个集合以后,可以直接使用system.out.println()来打印这个集合,但是,我们需要可以对每个元素进行操作,所以,这里需要使用迭代器来遍历集合 迭代器其实就是集合取出元素的方式 调用List对象的iterator()方法,得到Iterator对象,这个类是个接口类型,因此可以知道返回的是Iterator接口的子对象 while()循环,条件是,List对象的hasNext()方法,返回布尔值不为false 循环里面调用List对象的next()方法,可以得到每一个元素 im

【Java学习笔记】&lt;集合框架&gt;TreeSet,Comparable,Comparator

1 public class Person implements Comparable{ 2 private String name; 3 private int age; 4 5 public Person(){ 6 super(); 7 } 8 public Person(String name, int age) 9 { 10 super(); 11 this.name = name; 12 this.age = age; 13 } 14 15 16 @Override 17 public