java TreeSet

说明

TreeSet,无序不重复,可以 指定排序

线程不安全(不同步)。底层基于TreeMap实现。

常用方法

  • add()
  • remove()
  • size()
  • E first() 返回此集合中当前的第一个(最低)元素
  • E last() 返回此集合中当前的最后(最高)元素。

排序

compareable

元素类实现 Comparable 接口,覆盖 compareTo() 方法

Comparator

元素类实现 Comparator 接口,覆盖 compare() 方法

案例

元素类

package day18;

public class Student implements Comparable<Student>{

    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + "]";
    }
    /**
     * 根据年龄正序排序,年龄小的在前,年龄大的在后
     */
    @Override
    public int compareTo(Student o) {

        if( this.age > o.getAge()){ // 下一个元素中的年龄  >  上一个元素的年龄
            return 1; 
        }else if( this.age < o.getAge() ){ // 下一个元素中的年龄  <  上一个元素的年龄
            return -1;
        }else{ 
            // 两个元素的年龄相等时,再比较名字
            // 如果返回0,就说明这2个对象内容相同,就会保留一个
            return this.name.compareTo(o.getName()) ;
        }

    }


}

测试类

package day18;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class S4TreeSet {

    public static void main(String[] args) {

        Set<Student> set = new TreeSet<>();

        Student lilei = new Student("李雷", 20);
        Student lucy = new Student("lucy", 16);
        Student lili = new Student("lili", 16);
        Student hmm = new Student("韩梅梅", 25);
        Student zhangsan = new Student("张三", 16);

        Student lucy2 = new Student("lucy", 16);

        set.add(lilei);
        set.add(lucy);
        set.add(lili);
        set.add(hmm);
        set.add(zhangsan);
        set.add(lucy2);


        for( Student item : set){
            System.out.println(item);
        }


    }
}

原文出处:https://malaoshi.top/show_1IX3aMuf5Fu7.html