Java中TreeSet集合存储自定义类型

本文探讨了Java中TreeSet集合在存储自定义类型时的要求。当存储自定义类型,TreeSet需要元素实现Comparable接口以进行排序。不实现此接口会导致异常。通过重写compareTo方法,我们可以定义自定义类型的比较规则。总结了TreeSet的特性,包括存储的元素必须有序、不重复且不能为null。
摘要由CSDN通过智能技术生成
TreeSet集合存储自定义类型:

1、我们都知道TreeSet存储元素是自动按照从小到大排序的,那么存储的是自定义类型呢?

它还会按照从小到大排序吗?我们来测试一下:
发现存数据时都会抛出异常,更别说自动排序了。

// 运行抛出异常:java.lang.ClassCastException: class Person cannot be cast to class java.lang.Comparable.

// 这个异常是说:Person类型不能转换成Comparable类型,这个Comparable以able结尾,显然是个接口。


2、所以说系统要求我们能转换成Comparable类型,也就是要求Person类去实现Comparable接口,就是要我们定义Person类的比较规则。

那么如何重写Comparable接口的compareTo方法呢?

测试代码:

import java.util.*;

public class Test07 {
   
    public static void main(String[] args) {
   
        // 创建TreeSet对象
        Set<Person> people = new TreeSet<>()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值