TreeSet相关问题

简介: TreeSet相关问题

TreeSet相关问题
1、TreeSet的底层是二叉树,按照树节点进行存储和取出,所以可以实现排序。
2、TreeSet基于 TreeMap 的 NavigableSet 实现,根据构造方法的不同,选择使用自然排序或者比较器排序。

排序:
自然排序:
采用无参构造,要求对象所属的类实现Comparable接口。
比较器排序:
TreeSet的带参构造,构造方法需要接收一个实现了Comparator接口的对象。

实现案例:

Student s1 = new Student("111","张三",21);

    Student s2 = new Student("222","曹曹",20);
    Student s3 = new Student("333","孙权",19);
    Student s4 = new Student("444","刘备",18);
    Student s5 = new Student("555","张飞",19);


    Set set = new java.util.TreeSet();

    set.add(s1);
    set.add(s2);
    set.add(s3);
    set.add(s4);
    set.add(s5);

// 构造迭代器显示结果

    Iterator iterator = set.iterator();
    while (iterator.hasNext()) {
        Student o = (Student) iterator.next();
        System.out.println(o.getName());

    }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Comparable接口 :
Comparable接口强行对实现它的类的每个实例进行自然排序,该接口的唯一方法compareTo方法被称为自然比较方法;强烈建议自然排序和equals一致(就是两个对象调用compareTo方法和调用equals方法返回的布尔值应该一样)
Comparator接口:
Comparator接口强行对某个对象 collection 进行整体排序 的比较函数。可以将 Comparator 传递给 sort 方法

Comparable接口实现案例:

class Dog implements Comparable{

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

@Override
public String toString(){
   return "Dog [age="+age+",name="+name+"]";
}

@Override

public int compareTo(Object o) { 
    Dog d =(Dog)o;
    if(this.age>d.age) return 1;
    if(this.age<d.age) return -1;
    return 0;
}

}
//以下是main方法的内容

    List list = new ArrayList();
    list.add(new Dog(6,"旺财"));
    list.add(new Dog(3,"啊黄"));
    list.add(new Dog(5,"伯爵"));

    for(int i=0;i<list.size();i++){
        System.out.println(list.get(i).toString());
    }
    Collections.sort(list);
    System.out.println("sort排序后");
    for(int i=0;i<list.size();i++){
        System.out.println(list.get(i).toString());

    }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Comparator接口实现案例:

public class ComparatorLength implements Comparator{

@Override
public int compare(String o1, String o2) {
    int len1 = o1.length();
    int len2 = o2.length();
    return (len1 - len2 > 0) ? 1 : -1;
}

}

//以下是main函数
String[] str = {"aadf","dqwd","dqwfcsqc","xqsccaac","csfwffqaf","czxca","cas","cacs","casc"};

    Comparator com1 = new ComparatorLength();
    Comparator com2 = new ComparatorLength();
    Arrays.sort(str, com1);
    System.out.println(Arrays.toString(str));
    Arrays.sort(str, com2);
    System.out.println(Arrays.toString(str));
    System.out.println((com1 == com2) +"--"+ (com1.equals(com2)));

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

相关文章
|
1月前
|
人工智能 供应链 安全
大模型 API 接入的「三座大山」:成本、供应链与合规的工程解法
本文揭示企业接入大模型API面临的三大困境:成本失控(中转平台暗箱扣费)、供应链脆弱(号池封禁致服务中断)、合规升级(跨境数据与身份管理新规)。提出通过API网关可观测计量、Provider抽象路由、RAM+SLS+DataWorks构建身份-传输-审计三层合规体系,实现稳健可控的AI基础设施。
280 0
|
8月前
|
机器学习/深度学习 vr&ar
告别漫长等待:3D生成进入“秒时代”!Apple 重新定义实时视图合成
Apple提出SHARP,首创秒级单图生成高保真3D高斯表示,1秒内完成120万基元回归,较扩散模型提速千倍。端到端架构结合深度调整与自监督微调,显著提升视图锐度与真实感,LPIPS降低25-34%,推动AR/VR实时交互迈入新纪元。
321 1
告别漫长等待:3D生成进入“秒时代”!Apple 重新定义实时视图合成
|
2月前
|
人工智能 弹性计算 开发者
2026年阿里云618活动攻略:时间、入口及优惠政策详解
2026阿里云618大促开启!主题“AI加速季,智惠生产力”,6月1日-30日限时开展。涵盖云服务器秒杀(低至38元/年)、上云满减券(最高减1728元)、Qwen 3.7大模型5折、全模型节省计划直省55%,及QoderWork首月0元等专属AI权益,助力开发者与企业低成本上云、高效用AI。(240字)
800 2
|
1月前
|
人工智能 程序员 API
别再被昂贵 SEO 订阅费拿捏了:3.5k Star OpenSEO,直接做 Semrush/Ahrefs 开源替代
OpenSEO 是 Semrush / Ahrefs 的开源替代方向:自托管、按量 SEO 数据、MCP 和 Agent Skills,把关键词、外链、审计和 AI 工作流连起来。
301 0
|
2月前
|
JSON 自然语言处理 前端开发
谷歌深夜发布 Gemini 3.5:多模态能力再升级,开发者该怎么抓住这波机会?
Gemini 3.5 Flash于2026年5月发布,主打原生多模态与实时智能体能力:支持图文音视一体化理解、帧级视频诊断、100万token长上下文,并在编码(76.2%)、Agent任务(83.6%)等实测中超越前代。速度快4倍、成本更低,已免费开放。
|
4月前
|
人工智能 监控 数据可视化
【AI加持】基于PyQt5+YOLOv8+DeepSeek的摔倒行为检测系统(详细介绍)
本文介绍了一个基于PyQt5+YOLOv8+DeepSeek的摔倒行为检测系统。该系统整合了计算机视觉与自然语言处理技术,支持对图片、视频、摄像头等多种数据源的实时检测,并具备智能评估功能。系统采用PyQt5开发GUI界面,YOLOv8进行目标检测,DeepSeek提供语义分析,同时使用CSV存储数据和多线程优化性能。功能包括登录注册、实时检测、历史记录查询等,适用于养老院、医院等场景,具有重要的社会应用价值和技术创新意义。
521 3
【AI加持】基于PyQt5+YOLOv8+DeepSeek的摔倒行为检测系统(详细介绍)
|
11月前
|
机器学习/深度学习 人工智能 运维
运维不只是“修电脑”:聊聊运维如何助力 AI 优化服务质量
运维不只是“修电脑”:聊聊运维如何助力 AI 优化服务质量
656 9
|
7月前
|
前端开发 JavaScript 安全
HTML 链接
HTML链接是网页导航的核心,通过`&lt;a&gt;`标签创建,利用href属性指向目标地址。可实现页面跳转、锚点定位、文件下载等,支持文本、图片等多种形式,并可通过target、rel、download等属性控制打开方式与行为,配合CSS和JavaScript增强交互体验。
1416 4
|
7月前
|
存储 机器学习/深度学习 人工智能
构建AI智能体:七十九、从SVD的理论到LoRA的实践:大模型低秩微调的内在逻辑
本文系统介绍了奇异值分解(SVD)的核心原理及其在大模型微调中的应用。文章首先通过水果沙拉制作、员工评选等生活化案例,形象解释了SVD将复杂矩阵分解为三个简单矩阵乘积的过程。随后详细阐述了SVD公式A=UΣVᵀ的数学含义,包括奇异值矩阵Σ作为"重要性权重表"的关键作用。重点剖析了SVD的低秩近似特性,展示了如何通过保留主要奇异值实现数据压缩。最后深入探讨了SVD对LoRA技术的指导作用:通过分析权重更新矩阵的奇异值分布,科学确定低秩适配器的秩参数,实现大模型的高效微调。
750 3
|
8月前
|
传感器 存储 人工智能
AI智能体:实现AGI的关键一步与未来展望
AI智能体是能自主感知、决策与行动的“数字大脑”,它让AI从只会回答问题进化为能动手解决问题。相比传统工具,它具备自主性、反应性、前瞻性、交互性和迭代性,可像助手一样主动完成复杂任务。如今已在政务、医疗、教育、金融等领域落地,成为提升效率的“数字员工”。2025年被视为“AI智能体元年”,技术、资本与政策合力推动其迈向规模化应用,开启人机协同新阶段。
1452 4