黑马程序员-java之TreeSet,Comparable,Comparator

Nginx下ModSecurity模块安装详细教程 本文提供了在Nginx 1.28.0上安装ModSecurity v3的完整教程。首先需安装编译依赖,然后从源码编译安装ModSecurity库并设置优化参数。接着编译Nginx动态模块并配置加载。核心配置包括设置规则引擎、日志路径及性能优化参数。安装OWASP核心规则集后,在Nginx站点配置中启用ModSecurity。最后测试规则有效性并给出性能优化建议,如规则排除、精简规则集等。整个过程包含详细的命令和配置示例,确保安全防护功能正常运作。 阅读详情

-------------android培训、java培训、---------------


TreeSet可以对元素进行排序,缺省是按照自然排序进行排列,即元素必须实现Comparable接口,或者创建TreeSet对象的时候必须指定一个比较器
且元素唯一。
排序的两种方式:
方式一:让元素自身具备比较性,即让元素类实现Comparable接口,覆写compareTo(),这种排序方式是默认排序,也叫自然排序
方式二:当元素自身不具备比较性时,或者所具备的比较性不是实际需要的,这是就需要让集合TreeSet具备比较性,即在创建集合对象的时候指定比较器
当两种都存在时候,用比较器
原理:二叉树结构(左叉值小于右叉值),新元素大于原有元素,则放在叉的右边,小于则放在左边,等于则不存储
实例:存储自定义对象
代码:
package com.itheima;

import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;

class Student implements Comparable{
    private String name;
    private int age;
    Student(String name,int age){
        this.name=name;
        this.age=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;
    }
    public int compareTo(Object obj){//先按年龄比较,年龄相同则按名字自然排序
        if(!(obj instanceof Student)){
            throw new RuntimeException(obj.toString()+"不是学生");
        }
        Student stu = (Student)obj;
        //System.out.println(this.name+"---compareTo---"+stu.name);
        if(this.age>stu.age)
            return 1;
        if(this.age==stu.age){
            return this.name.compareTo(stu.name);
        }
        return -1;
    }
}
class myComparator implements Comparator{//先按姓名自然排序,姓名相同则按年龄升序排序
    public int compare(Object o1,Object o2){
        Student s1 = (Student)o1;
        Student s2 = (Student)o2;
        int num = s1.getName().compareTo(s2.getName());
        if(num==0){
            return new Integer(s1.getAge()).compareTo(s2.getAge());
        }
        return num;
    }
}
public class TreeSetDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TreeSet ts = new TreeSet();//创建TreeSet对象
        TreeSet ts2 = new TreeSet(new myComparator());
        ts.add(new Student("zhangsan",18));//添加元素到对象ts
        ts.add(new Student("lisi",22));
        ts.add(new Student("wangwu",18));
        ts.add(new Student("zhaoliu",19));
        
        ts2.add(new Student("zhangsan",18));//添加元素到ts2
        ts2.add(new Student("lisi",22));
        ts2.add(new Student("wangwu",18));
        ts2.add(new Student("zhaoliu",19));
        ts2.add(new Student("wangwu",23));
        Iterator it = ts.iterator();
        Iterator it2 = ts2.iterator();
        System.out.println("----------ts中的元素------------");
        while(it.hasNext()){
            Student stu = (Student)it.next();
            System.out.println(stu.getName()+"---"+stu.getAge());
        }
        System.out.println("----------ts2中的元素------------");
        while(it2.hasNext()){
            Student stu2 = (Student)it2.next();
            System.out.println(stu2.getName()+"---"+stu2.getAge());
        }
    }

}


文本分析-使用jieba库进行中文分词和去除停用词(附案例实战) 本文将手把手教会你使用jieba库进行中文分词和去除停用词,这是学会文本分析的必经之路! 阅读详情

相关推荐

避开ego_planner仿真的第一个坑:深度相机、点云与odom话题配置全指南

本文详细解析了ego_planner仿真中深度相机、点云与odom话题配置的关键问题,帮助开发者避开常见陷阱。从数据流架构到具体配置细节,包括深度相机的内外参匹配、点云数据规范要求以及odom话题的验证方法,提供了全面的实战指南和优化建议。

weixin_30335575的博客 492

黑马程序员--07.集合框架--08.【TreeSet的Comparator排序】【TreeSet总结】

集合框架--7       TreeSet的Comparator排序    TreeSet总结 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 1.    TreeSet的Comparator排序 1). Comparator应用的背景 如果对象元素不具有比较性 (就是存入集合的元素所在的类本身没有实现Compa

歆明正航的专栏 1647

游戏开发实战:如何用旋转矩阵实现2D角色平滑转向(附Unity代码)

本文深入探讨了在Unity游戏开发中,如何运用旋转矩阵原理实现2D角色的平滑转向。文章从核心理论出发,提供了计算目标旋转、实现平滑插值(Lerp与SmoothDamp)的完整C#代码,并解决了与动画系统、物理引擎协同的常见难题,帮助开发者提升游戏操作手感与视觉流畅度。

weixin_29057237的博客 287

黑马程序员-Set-HashSet-TreeSet-Comparator-Comparable

l Set 特点: 1. 无序(存储和查询的顺序不同,因为是按照对象的地址值存储进去的)。 2. 不可重复。   通过查看API,Set的功能与Collection是一样的。   常用子类 1. HashSet 2. TreeSet   l HashSet HashSet如何保证元素的唯一性? 原理:将对象存储在HashTable中,HashTable是通过该对象自己的H

liuxiaohui_dh的专栏 1265

[Adaptive Autosar]深入理解--Time Synchronization

目录 1.TS典型应用场景 2.CP和AP时间同步对比 3.时间同步基础知识 4.TBR部分参数说明 5. TS功能说明 5.1 基本说明 5.2 时间纠正计算说明 5.3 时间验证 Time Synchronization 时间同步,后面简称TS 1.TS典型应用场景 时间同步,典型应用就是在自动驾驶领域,自动驾驶领域涉及到各个传感器的数据采集,如IMU采集当前车身姿态和运动信息,毫米波雷达-超声波雷达-环视摄像头-前视摄像头...等等传感器捕获的数据,在算法中需要精确知道每个数.

AgingMoon的博客 3997

2025年情感分析(SA)综述——论文阅读报告

2025年情感分析(SA)综述——论文阅读报告

Samdy_L的博客 2086

黑马程序员——TreeSet排序

TreeSet是集合类Set的一种,可以对Set集合中元素进行排序,TreeSet中元素同样是无序的,即存入和取出的顺序不一定一致,元素不可重复,TreeSet中的对象必须具备比较性,元素不可重复,保证元素唯一性的依据是compareTo方法和return 0。 TreeSet存储对象的时候, 可以排序, 但是需要指定排序的算法,Integer能排序(有默认顺序), String能排序(有默认顺

hpu186的专栏 647

机器学习-02 模型的评估与选择

2.1 误差与过拟合 我们将学习器对样本的实际预测结果与样本的真实值之间的差异成为:误差(error)。定义: 在训练集上的误差称为训练误差(training error)或经验误差(empirical error)。 在测试集上的误差称为测试误差(test error)。 学习器在所有新样本上的误差称为泛化误差(generalization error)。 显然,我们希望得到的是在新样本上表现得很好的学习器,即泛化误差小的学习器。因此,我们应该让学习器尽可能地从训练集中学出普适性的“一般特征”,这

一个小白 1703

黑马程序员——java基础笔记:比较器Comparator和Comparable

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-比较器概述: 如果一个数组里放的是一组对象,那么就会有怎么把这些对象进行排序的问题,往容器TreeSet里面添加对象时,必须要求这些对象时能够进行比较的,这里也会有对象的排序问题。我们在对对象进行排序的时候,就会用到比较器。常用的比较器有两种,Comparable和Comparator。 Comparable和C

Luffyworld的博客 479

YOLOv8【第十一章:视频追踪与流处理篇·第6节】BoT-SORT 改进:结合相机运动补偿(CMC)提升追踪稳定性!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 718

【38】OpenCV C++实战篇——基于多项式插值的亚像素边缘定位算法

亚像素边缘定位算法实现 本文介绍了一种基于多项式插值的亚像素边缘定位算法,用于提高图像边缘检测的精度。文章首先分析了传统像素级边缘检测方法(如Canny、Sobel)的局限性,指出其在测量应用中的精度不足问题。 算法核心 梯度计算:使用8个方向模板进行卷积运算生成梯度图像 亚像素定位:采用多项式插值方法改进边缘定位精度 实现步骤: 生成8个方向的卷积模板(0°、45°、90°等) 利用filter2D函数计算各方向梯度 通过归一化处理显示梯度图像 代码特点 提供完整的C++实现代码 包含模板生成、梯度计算和

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1099

黑马程序员------TreeSet集合框架存储自定义元素之排序Comparable与Comparator

------- android培训、java培训、期待与您交流! ---------- TreeSet集合框架存储自定义元素之排序Comparable与Comparator 我们知道,往TreeSet中存入的元素是要具有比较行的,TreeSet是要默认为元素排序的,但是我们如果存储的元素对象自身不具备比较性怎么办?有两种方式来解决这个问题,就要用到Comparable与Comparator

aurora_bessie 501

【AI应用实战-WorkBuddy】WorkBuddy 能帮你做什么(一)

文章摘要: WorkBuddy是一款AI工作助手,专为提升效率而设计,适用于经常处理文档、代码、数据分析等重复性任务的职场人士。它能通过自然语言交互快速完成五大核心场景任务: 周报撰写:输入工作要点,10分钟生成专业周报; 代码调试:解析报错信息,3分钟提供解决方案; Excel分析:自动计算数据趋势并生成图表和结论; 自动化脚本:将重复流程转为脚本,节省98%时间; 文档生成:根据代码自动补充README、API文档和注释。 效果对比:传统手动操作耗时1-3小时的任务,WorkBuddy可将时间缩短至10

346

黑马程序员对TreeSet集合中的元素排序的两种方式

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- TreeSet对元素进行排序的方式一:让元素自身具有比较功能,元素需要实现Comparable接口,覆盖compareTo方法 package org.blog.test2; import java.util.TreeSet; class Person implements Compar

w12340031的专栏 705

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

黑马程序员——java集合中的TreeSet

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 1.        java集合框架中的Set接口: Java的集合类主要由两个接口派生而出:Collection和Map. Collection接口派生出了两个重要的子接口:List、Set; 在实现Set接口中的子类中有两

xyyancsd的专栏 640

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

黑马程序员训练营---------TreeSet集合中对象进行排序的两种方式

---------------------------  中关村黑马程序员训练营 --------------------------------                                                TreeSet集合中对象进行排序的两种方式 .------http://www.itheima.com" target="blank">Java培训、An

FMFsunshine的专栏 764

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

黑马程序员—基础-TreeSet的使用

/* TreeSet:它可以给Set集合中的元素进行指定方式的排序。         保证元素唯一性的方式:通过比较的结果是否为0.         底层数据结构是:二叉树。 */ import java.util.*; class TreeSetDemo2   {     public static void main(String[] args)

qq_25418233的博客 327

黑马程序员——java基础——Java集合中TreeSet实现元素唯一性的方法

Java集合中TreeSet实现元素唯一性的方法

hutaoxiaodai的博客 505

黑马程序员——Comparable接口和Comparactor接口的使用以及分析

大纲:本篇博客主要对Comparable接口、Comparactor接口和Arrays.sort()、Collections.sort()方法的学习使用进行介绍,是因为做基础测试题和答题才知道这两个接口,题目已经提交,但是对两个接口的详细使用和区别却是一知半解,只是感觉它们有点类似,就抽出时间搞清楚,下面是学习的

十指空间 959

黑马程序员17-6:TreeSet的Comparator比较器接口以及compareTo优化写法

[align=center]------- [url=http://edu.youkuaiyun.com/heima]android培训 [/url]、[url=http://edu.youkuaiyun.com/heima]java培训[/url]、期待与您交流!------- [/align] [code="java"] package cn.itcast.p.bean; import ja...

kingdelee的专栏 566

黑马程序员---TreeSet

ThreeSet能够对集合中的对象排序,当TreeSet想集合中加入一个对象时,会把它插入到有序的对象序列中。那么TreeSet是如何排序呢?TreeSet支持两种排序方式:自然排序和客户化排序.在默认情况下TreeSet采用自然排序方式。     先来介绍介绍什么是自然排序吧   1、自然排序    在JDK类库中,有一部分类实现了Comparable接口,如Integer Doubl

李靖黑马学习的专栏 653

黑马程序员_日记54_TreeSet使用比较器和泛型的初级结合

——- android培训、java培训、期待与您交流! ———-查阅API,得到: “TreeSet(Comparator六、比较器的泛型定义方式分析import java.util.*; class GenericDemo6 { public static void main(String[] args) { //方式二和方式一选其一,打开对于的代码块就可以了

itheima_1llt的专栏 368

TreeSet集合

不可以存储重复元素没有索引可以将元素按照规则进行排序TreeSet():根据其元素的自然排序进行排序TreeSet(Comparator comparator) :根据指定的比较器进行排序两种比较方式小结自然排序: 自定义类实现Comparable接口,重写compareTo方法,根据返回值进行排序比较器排序: 创建TreeSet对象的时候传递Comparator的实现类对象,重写compare方法,根据返回值进行排序。

summer__7777的博客 105

黑马程序员_Java第15天知识总结_TreeSet_泛型

------- android培训、java培训、期待与您交流! ---------- 今天学习的知识点: HashSet_TreeSet_Comparable和其方法_Comparator_和其方法_泛型_泛型定义在类上_泛型定义在方法上_泛型定义在静态方法上 泛型定义在接口上_泛型的上限_泛型的下限_泛型的通配符(占位符) Set:无序,不可以重复元素。 |--HashSet

v191211的专栏 636

黑马程序员_Java集合总结(二)

---------------------- android培训、java培训、期待与您交流! ---------------------- 一、set(集)            特点;里面的数据不能有重复  储存的顺序不能确定  索引不能访问其中具体数据

zwq5337的专栏 298

黑马程序员--java集合TreeSet

-------android培训、java培训、期待与您交流!     ----------  »知识点总结 1.TreeSet:可以对Set集合中的元素进行排序。  底层数据结构是二叉树。  保证元素唯一性的依据: compareTo方法return 0. 2. TreeSet排序的第一种方式:让元素自身具备比较性。  元素需要实现Comparable接口,覆盖compare

w1h2b1111的专栏 635
上一篇: 黑马程序员-Java之HashSet
下一篇: 黑马程序员-java之HashMap,TreeMap
forTomorrow_java
博客等级 码龄11年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值