import java.util.Comparator;
import java.util.TreeSet;
import com.heima.bean.Person;
/*
* TreeSet集合是用来对元素进行排序的,同时也可以保证元素的唯一
*/
public class Demo3_TreeSet {
public static void main(String[] args) {
//demo1();
//demo2();
//demo3();
//demo4();
TreeSet<String> ts = new TreeSet<>(new CompareByLen());
ts.add("aaaa");
ts.add("nba");
ts.add("cba");
ts.add("sa");
ts.add("aaabbbbbcccc");
System.out.println(ts);
}
private static void demo4() {
TreeSet<Person> ts = new TreeSet<>();
ts.add(new Person("zhangsan",13));
ts.add(new Person("lisi",44));
ts.add(new Person("wangwu",25));
ts.add(new Person("zhaoliu",56));
System.out.println(ts);
}
private static void demo3() {
TreeSet<Person> ts = new TreeSet<>();
ts.add(new Person("张三",13));
ts.add(new Person("李四",44));
ts.add(new Person("王五",25));
ts.add(new Person("赵六",56));
System.out.println('张'+0);
System.out.println('李'+0);
System.out.println('王'+0);
System.out.println('赵'+0);
System.out.println(ts);
}
private static void demo2() {
/*
* 当compareTo方法返回0,集合中只有一个元素
* 当compareTo方法返回1,集合中元素怎么存就怎么取
* 当compareTo方法返回-1,集合中元素倒序存储
*/
TreeSet<Person> ts = new TreeSet<>();
ts.add(new Person("张三",13));
ts.add(new Person("李四",44));
ts.add(new Person("周奇",44));
ts.add(new Person("王五",25));
ts.add(new Person("赵六",56));
System.out.println(ts);
}
private static void demo1() {
TreeSet<Integer> ts = new TreeSet<>();
ts.add(1);
ts.add(1);
ts.add(3);
ts.add(3);
ts.add(2);
ts.add(2);
System.out.println(ts);
}
}
class CompareByLen implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
int num = s1.length() - s2.length();
return num == 0 ? s1.compareTo(s2):num;
}
}
相关推荐
保姆级教程:用Fiddler+夜神模拟器搞定抖音App抓包(附SSL Pinning绕过实战)
本文提供了一套完整的移动端抓包解决方案,详细介绍了如何使用Fiddler和夜神模拟器进行抖音App抓包,并重点讲解了SSL Pinning绕过技术。通过Xposed框架和JustTrustMe模块的组合,实现高效抓包,适用于产品分析、竞品研究和安全测试等场景。
java-如何在不使用比较器和比较器接口的情况下对地图进行排序?如何编写自定义排序?
问题-我有一个学生类,它包含名称,卷号,三个主题分数m1,m2,m3和总分数.如果两个或两个以上学生分数相等,则需要根据学生对象的总分数对其进行排序,然后根据其名称对其进行排序.注意-我必须用Google搜索它,但是并不能使用Comparable和Comparator接口在stackoverflow问题中获得预期的解决方案. 我已经创建了Studnt类 public class ...
Pyside6+qml+Qtcreator项目实战
PYTHON and QT QUICK - Custom Buttons With QML And JavaScript - [MODERN GUI]-#01
java中TreeSet的Comparator比较器的三种使用方法
java中treeset使用Comparator进行比较的三种方法1.让元素具备比较性。 比如我们比较两个人。我们定义一个person类,并且实现Comparable接口 例: public class Person implements Comparable{ private int age; private String name;public Person
WPF入门与XAML基础:从零开始构建你的第一个WPF应用
本文是WPF入门系列首篇,详细介绍WPF的核心优势与开发环境搭建。通过创建第一个WPF项目,解析MainWindow.xaml和App.xaml等关键文件,深入讲解XAML基础语法,包括属性赋值、命名空间和事件绑定。最后通过按钮点击交互示例演示WPF应用程序运行流程,帮助开发者快速上手WPF开发,为后续学习布局系统和数据绑定等高级主题奠定基础。
实战测评:4大搜索API(You.com/Tavily/Exa/Perplexity)谁更适合你的AI项目?附Python调用代码
本文实战测评了You.com、Tavily、Exa和Perplexity四大搜索API在AI项目中的集成应用,详细对比了它们的技术特性和Python调用方法。针对LLM实时数据需求,You.com的优化设计表现突出,支持32k大上下文窗口和快速响应。文章提供了完整的代码示例和场景化选型建议,帮助开发者高效集成搜索API到AI项目中。
javaSE (二十五)TreeSet原理、自然排序和选择器排序的比较、TreeSet几个练习
TreeSet和HashSet不同,底层是二叉树,可以保证输出有序 二叉树,小的存储在左边(负数),大的在右边(正数),相等就不存 返回0,集合中只有一个元素(保证输出唯一,比如属性值相同的对象,我就返回0) 返回-1,集合倒叙 返回1,怎么存怎么取(和根元素比较) 两种方法保证输出有序: 自然排序:用于自己创建的类的时候,让类implements Comparable,然后重写compar...
AC7811无感FOC实战:从开环到闭环的电机控制调试全记录
本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。
treeset比较器_Java TreeSet比较器()方法与示例
treeset比较器 TreeSet类的compare()方法 (TreeSet Class comparator() method) comparator() method is available in java.util package. 比较器()方法在java.util包中可用。 comparator() method is used to get the Comparator ob...
汇率波动率建模实战:从GARCH到EGARCH的金融时间序列分析
在金融时间序列分析中,波动率建模是量化市场风险的核心技术。其基本原理在于捕捉金融资产收益率序列中存在的波动聚集、尖峰厚尾等典型特征。通过建立条件异方差模型,如GARCH及其扩展模型,可以动态估计和预测未来波动率,这对于资产定价、风险管理和投资决策具有重要价值。在金融工程领域,该技术广泛应用于外汇、股票和衍生品市场。本文以汇率波动率建模为具体场景,详细阐述了如何使用Python中的arch库,从数据预处理、模型选型(包括GARCH、EGARCH等)、参数估计到样本外预测评估的全流程实践,并深入探讨了模型在应对
Android 11.0 app添加校验锁(输入密码才能进入app)
11.0定制化开发中客户要求给app添加锁,就是点击app 图标时,会弹出Dialog,需要输入密码才能进入app中,就是应用校验锁, 最开始想到在Launcher3中实现,但是如果更换了默认Launcher 又不行了 所以最终还是得拦截app启动Activity 从这里入手了 Launcher与APP是在两个不同的进程中,他们之间的通信是通过Binder完成的,点击Launcher上的某个APP,这时会调用Launcher的startActivitySafely方法。 public boolean sta
TreeSet排序原理(比较器)
TreeSet底层使用的是红黑树实现,对于元素之间排序,如果不指定自定义的外部比较器 ——Comparator,那么插入的对象必须实现内部比较器——Comparable 接口,元素按照实现此接口的 compareTo() 方法去排序。
Lammps不同亲疏水性粗糙表面的润湿行为模拟(包含in文件)
Lammps粗糙表面的润湿行为模拟(包含in文件)前言—润湿行为模拟一、物理模型构建二、具体in文件—in文件内循环亲疏水性三、具体in文件—分子模板构建初始模型以及平衡态模拟四、全部代码(基地粗糙表面只提供data文件) 前言—润湿行为模拟 润湿现象:当液体与固体接触时,液体的附着层将沿固体表面延伸。当接触角 θ\rm \thetaθ 为锐角时,液体润湿固体,若θ为零时,液体将展延到全部固体表面上。润湿现象的产生与液体和固体的性质有关。(来自百度百科) 润湿行为的本质是固液之间的相互作用,也就是分子间的范
TreeSet与TreeMap实现自定义比较器
1.常见集合 键值:Map集合等; 单值存储:数组,List,Set,Queue集合等; 我们知道部分的集合实现的原理不用,比如TreeMap底层采用红黑树,实现了排序的功能,其默认排序一般为从小到大排序数字,根据字典序排序字符等,但默认排序方式因为缺陷往往不能满足开发的需求,因此必须自己学会如何实现自定义比较器; TreeSet与TreeMap可以代表大部分集...
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
【TreeSet】自然排序与比较器排序
1.自然排序 对象类: public class Examinee implements Comparable{//实现接口 private int scorce; //构造方法与get、set方法略 @Override public String toString() { return this.getScorce(...
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
使用比较器的方式实现TreeSet集合元素的排序
使用比较器的方式实现TreeSet集合元素的排序
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
【Java】TreeSet
TreeSet也是Set集合体系中的一员,在TreeSet中,也没有新的方法需要学习,直接使用上面Colleciton里面的方法就行了。在TreeSet中延续了Set集合的两个特点:不重复、无索引,但是它是可以给元素进行排序的。可排序:默认情况下,是按照从小到大的顺序进行排列的,因为在底层,TreeSet是基于红黑树的数据结构实现排序的,增删改查性能都比较好。需求:创建TreeSet集合,并添加3个学生对象学生对象属性:姓名,年龄。要求按照学生的年龄进行排序同年龄按照姓名字母排列(暂不考虑中文)
java set 比较函数_Java treeSet 集合 比较器 练习
1,练习:程序启动后,可以从键盘输入接收多个整数,直到输入quit时结束输入.把所有输入的整数倒序排列打印.分析1,创建Scanner对象,键盘录入2,创建TreeSet集合对象,TreeSet集合中传入比较器3,无限循环不断接收整数,遇到quit退出,因为退出是quit,所以键盘录入的时候应该都以字符串的形式录入4,判断是quit就退出,不是将其转换为Integer,并添加到集合中5,遍历...
Java 集合之TreeSet 自定义类 比较器
Java 集合之TreeSet 基于 TreeMap 的 NavigableSet 实现。 使用元素的自然顺序进行排序,或者通过在集合创建时提供的 Comparator 进行排序,具体取决于使用的构造函数。唯一,无序(没有按照输入顺序进行输出)又有序(按照升序进行遍历)。 此实现为基本操作(添加、删除和包含)提供有保证的 log(n) 时间成本。 请注意,如果要正确实现 Set 接口,则 set 维护的顺序(无论是否提供了显式比较器)必须与 equals 一致。 (请参阅 Comparable
TreeSet集合练习---Comparator比较器
定义一个手机类,包含手机品牌,价格,封装该类的属性,并定义该类的有参构造方法实现对属性的赋值。3.自定义一个比较器(按照价格降序排列),将1中的集合元素按照比较器的顺序进行存放。Phone p1 = new Phone("苹果",5800);Phone p2 = new Phone("三星",3899);Phone p3 = new Phone("华为",6999);Phone p4 = new Phone("小米",2500);4.使用迭代输出该集合类中的所有元素。集合进行存储数据并遍历。
TreeSet 下创建比较器进行比较
练习:写一个学生类,属性有学号,姓名,性别,年龄,创建5个学生对象,给学生按照年龄排序,如果年龄一样,按照学号排序. 先创建comparator 接口 进行比较器 代码如下 import java.util.TreeSet; import java.util.Comparator; public class TestTreeset { public stati
TreeSet集合的理解(自然排序和比较器排序)
TreeSet集合TreeSet集合是Set集合的一个子实现类,它是基于TreeMap中的NavigableSet接口实现的TreeSet集合是默认通过自然排序将集合中的元素进行排序TreeSet有两种排序方式:1)自然排序2)比较器排序让我们先来看看一个例题:package com.TreeSetDome; import java.util.TreeSet; public class T...
Java中TreeSet、HashSet、Collection重写比较器
比较器是一种可以对集合或数组中的元素按照自定义的方式进行排序的对象,它是实现了Comparator接口的类的实例,可以决定元素在集合或映射中如何被排序和存储。比较器有两种基本类型:自然排序和定制排序。自然排序是指让要排序的类实现Comparable接口,并重写compareTo方法,来定义元素的默认排序方式。定制排序是指创建一个实现了Comparator接口的类,并重写compare方法,来定义元素的特定排序方式。定制排序可以覆盖自然排序,也可以在自然排序不适用的情况下使用。
TreeSet和TreeMap内外部比较器
TreeSet和TreeMap内外部比较器 TreeSet TreeSet是Set集合,当你向其中插入数据时,会对插入的数据跟已有的数据进行比较,会按照比较的顺序进行存储. 原理图 内部比较器 实体类对象需要implements Comparable<当前实体类User> 实现里面的compareTo(当前实体类User...
TreeSet学习,比较器学习
一.Set是一个接口,不能直接实例对象,但是可以通过多态来实例对象,但一般都用他已知的实现类,hashSet,Set类他是继承至Collection 重写了Collection里的所有方法,Set里的元素没有索引,所以,他不能用普通for循环。Set集合中不包含重复的元素。 二.哈希值:JDK根据对象的地址或字符串来算出int型的数值,Object类中有一个方法可以获取对象的哈希值 ...
423



被折叠的 条评论
为什么被折叠?



