16.4 TreeSet

本文介绍如何使用Java中的TreeSet对自定义对象进行排序。重点讲解当对象具备自然顺序时的排序方式,以及当对象不具备自然顺序时通过实现Comparable接口来定义排序规则的方法。通过实例演示了如何基于员工薪资字段对Person对象进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TreeSet
TreeSet要注意的事项:
1、往TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按元素自然顺序的特性进行排序存储。

2、往TreeSet添加元素的时候,如果元素本身不具备了自然顺序的特性,那么该元素所属的类必须要实现Comparable接口,把元素的比较规则定义在compareTo(T o )上。

import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
import java.util.TreeSet;

import javassist.bytecode.Descriptor.Iterator;
class Person implements Comparable
{
	String name;
	int id;
	int salary;
	Person(String name,int id,int salary)
	{
	this.id = id;
	this.name = name;
	this.salary = salary;
	}

	public String toString()
	{
	return id+" "+name+" "+salary;	
	}

@Override
	public int compareTo(Object o) {
		// TODO Auto-generated method stub
	Person p = (Person)o;
	
		return this.salary-p.salary;
	}


}
 

public class wu
{  
	
	public static void main(String [] args)
	{
		
		Scanner scanner = new Scanner(System.in);
		TreeSet li = new TreeSet();
		li.add(new Person("张三",11,100));
		li.add(new Person("丽水",12,20));
		li.add(new Person("张三",11,40));	
		li.add(new Person("美丽",14,46));
		System.out.print(li);
	 
	}
	
}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值