TreeSet的用法
原创
©著作权归作者所有:来自51CTO博客作者虾米大王的原创作品,请联系作者获取转载授权,否则将追究法律责任
package com.shrimpking.t13;
import java.util.Comparator;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2024/9/10 15:28
*/
public class Student implements Comparable<Student>
{
private int no;
private String name;
public Student(int no, String name)
{
this.no = no;
this.name = name;
}
@Override
public String toString()
{
return "Student{" + "no=" + no + ", name='" + name + '\'' + '}';
}
@Override
public int compareTo(Student stu)
{
//升序排列
return this.no > stu.no ? 1 : ( this.no < stu.no ? -1 : 0);
}
public static class StudentComparator implements Comparator<Student>{
@Override
public int compare(Student o1, Student o2)
{
//降序排列
return o1.no > o2.no ? -1 : ( o1.no < o2.no ? 1 : 0);
}
}
}
package com.shrimpking.t13;
import javax.print.attribute.standard.JobKOctetsSupported;
import java.util.Arrays;
import java.util.TreeSet;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2024/9/10 15:33
*/
public class UseTreeSet
{
public static void main(String[] args)
{
TreeSet<Integer> ts = new TreeSet<>(Arrays.asList(5,3,1,8,9,6,2,4,7));
System.out.println("TreeSet中的所有元素=" + ts);
System.out.println("TreeSet中第一个元素是=" + ts.first());
System.out.println("TreeSet中的最后一个元素是=" + ts.last());
System.out.println("TreeSet中元素小于5的部分是=" + ts.headSet(5));
System.out.println("TreeSet中元素小于等于5的部分是=" + ts.tailSet(5));
System.out.println("TreeSet中元素3到8的部分=" + ts.subSet(3,8));
TreeSet<Student> tsStus = new TreeSet<>();
Student s1 = new Student(2,"zhang");
Student s2 = new Student(1,"lisi");
Student s3 = new Student(3,"wang");
tsStus.add(s1);
tsStus.add(s2);
tsStus.add(s3);
System.out.println("tsStus中所有的学生=" + tsStus);
//降序排列
TreeSet<Student> tsStus2 = new TreeSet<>(new Student.StudentComparator());
tsStus2.add(s1);
tsStus2.add(s2);
tsStus2.add(s3);
System.out.println("tsStu2中所有的学生=" + tsStus2);
}
}