java中的Set集合TreeSet集合

 时间:2026-05-05 10:54:15

1、自然排序:

/*

 * 需求:自定义对象自然排序(按年龄从小到大)且对象唯一!

 * */

public class TreeSetTest {

public static void main(String[] args) {

TreeSet<Student> ts = new TreeSet<Student>();

Student s1 = new Student("one",1);

Student s2 = new Student("two",2);

Student s3 = new Student("three",3);

Student s4 = new Student("four",4);

Student s5 = new Student("five",5);

Student s6 = new Student("six",6);

Student s7 = new Student("six",6);

Student s8 = new Student("four",4);

ts.add(s1);

ts.add(s2);

ts.add(s3);

ts.add(s4);

ts.add(s5);

ts.add(s6);

ts.add(s7);

ts.add(s8);

for(Student s :ts)

{

System.out.println(s.getAge() + s.getName());

}

}

}

2、因为底层是用了comparable的comparetor方法!所以学生类要实现comparable并重写comparable方法:

public class Student implements Comparable<Student>

public int compareTo(Student o) {

//按年龄进行排序:

int num = this.age - o.age;

//去掉重复!

if(num == 0)

{

this.name.compareTo(o.name);

}

return num;

}

3、控制台打印结果:

1one

2two

3three

4four

5five

6six

4、比较器排序:

public class CompareDemo {

public static void main(String[] args) {

TreeSet<Student> ts = new TreeSet<Student>(

//这里用匿名内部类:内部类的格式是new 一个类或者接口然后重写方法就好了!

new Comparator<Student>() {

public int compare(Student o1, Student o2) {

int num = o1.getAge() - o2.getAge();

if(num == 0)

{

o1.getName().compareTo(o2.getName());

}

return num;

};

}

);

Student s1 = new Student("one",1);

Student s2 = new Student("two",2);

Student s3 = new Student("three",3);

Student s4 = new Student("four",4);

Student s5 = new Student("five",5);

Student s6 = new Student("six",6);

Student s7 = new Student("six",6);

Student s8 = new Student("four",4);

ts.add(s1);

ts.add(s2);

ts.add(s3);

ts.add(s4);

ts.add(s5);

ts.add(s6);

ts.add(s7);

ts.add(s8);

for(Student s :ts)

{

System.out.println(s.getAge() + s.getName());

}

}

}

  • 关于java中的List集合
  • java中的Set集合HashSet集合
  • java中get和set方法使用
  • java中的set和get方法怎么用
  • java中集合的应用
  • 热门搜索
    斗鸡眼怎么矫正 手机mac地址怎么查 毗怎么读 口腔溃疡怎么治才好 血糖偏高怎么控制 嚼槟榔为什么上瘾 我来自中国英语怎么说 阴虱子是怎么形成的 蝴蝶怎么折 怎么查违章车辆查询