TreeSet特点及使用Java

这篇博客探讨了Java中的TreeSet类及其使用。示例展示了如何创建一个TreeSet来存储整数并自动按自然顺序排序,以及如何自定义比较器以根据年龄和姓名对Student对象进行排序。博客强调了TreeSet在去除重复元素和保持排序方面的特性。
摘要由CSDN通过智能技术生成
package haxi;

public class TreeSet {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		java.util.TreeSet<Integer> a1 = new java.util.TreeSet<>();
		a1.add(10);
		a1.add(52);
		a1.add(61);
		a1.add(1);
		a1.add(1);
		for (Integer integer : a1) {
			System.out.println(integer);
			/**
			 * 1 10 52 61
			 * 没有重复元素,并且按照自然顺序排好
			 */

		}
	}

}

进阶使用

package haxi;

import java.util.TreeSet;

public class TreeSetdemo {

	public static void main(String[] args) {
		TreeSet<Student1> a1 = new TreeSet<Student1>();
		Student1 s1 = new Student1("ayyz", 17);
		Student1 s2 = new Student1("byyz", 18);
		Student1 s3 = new Student1("cyyz", 15);
		Student1 s4 = new Student1("dyyz", 14);
		Student1 s5 = new Student1("eyyz", 14);
		Student1 s6 = new Student1("eyyz", 14);
		a1.add(s1);
		a1.add(s2);
		a1.add(s3);
		a1.add(s4);
		a1.add(s5);
		a1.add(s6);
		for (Student1 student1 : a1) {
			System.out.println(student1.getName() + " " + student1.getAge());
		}
	}

}

class Student1 implements Comparable<Student1> {
	String name;
	int 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;
	}

	Student1(String name, int age) {
		this.age = age;
		this.name = name;
	}

	@Override
	public int compareTo(Student1 o) {
		// TODO 自动生成的方法存根
		// return 0;
		int num = this.age - o.age;// return+为升序-为降序以下保证可以传进相同年龄(不同姓名)的元素
		int num1 = num == 0 ? this.name.compareTo(o.name) : num;
		return num1;
	}
}

输出如下年龄相同姓名不同可以存入都相同则不能

年龄排序上面有解释

string因为已经实现了那个接口所以不必另行比较

dyyz 14
eyyz 14
cyyz 15
ayyz 17
byyz 18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值