TreeSet类

ESP32水墨屏日历实战:低功耗自动更新与HTTPS数据解析 本文详细介绍了ESP32水墨屏日历项目的开发实践,重点讲解了低功耗自动更新与HTTPS数据解析的实现方法。通过ESP32的自动休眠功能和水墨屏的零功耗特性,结合HTTPS请求安全获取网络数据,实现了高效节能的桌面日历应用。项目代码开源,适合物联网开发者参考。 阅读详情
package 集合类.Set类;
/**
 * Set不允许重复数据
 */


/**
 * TreeSet 是用来进行集合排序的,请注意他和LinkedHashSet的区别。 
 TreeSet是按照一定的规则,将加入到集合里面的数据进行排序,
 而LinkedHashSet是严格按照你放入集合的顺序进行使用
 * @author jjj
 */
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

public class TreeSet类 {
	public static void main(String[] args) {
		// 测试自然排序
		testNature();

		// 测试指定排序方式
		testComparator();

		// 测试特殊的混合对象排序
		testMix();
	}

	public static void testNature() {
		// 测试一下数字
		TreeSet<Integer> set = new TreeSet<Integer>();
		// 反向存入整数数据
		for (int i = 10; i >= 1; i--) {
			set.add(i);
		}
		//如果add了相同的数据,是无效的,因为set集合不能重复元素
		set.add(10);
		// 输出看看
		// 可以看到数据为自然的数字排序
		showSet(set); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

		// 测试一下字符串
		TreeSet<String> set2 = new TreeSet<String>();
		// 同样反向放入
		for (int i = 10; i >= 1; i--) {
			set2.add(i + "");
		}
		// 看输出结果
		// 10 的自然排序没有2高,因为字符'1'小于'2'
		showSet(set2); // [1, 10, 2, 3, 4, 5, 6, 7, 8, 9]

		// TreeSet里面的数据因为要排队
		// 所以如果是混合类型数据的数据,如果不能字段转换
		// 将出现异常 java.lang.ClassCastException:
	}

	public static void testComparator() {
		// 同样测试数字,我们要反向排序
		TreeSet<Integer> set = new TreeSet<Integer>(new MyIntegerComparator());
		// 反向存入整数数据
		for (int i = 10; i >= 1; i--) {
			set.add(i);
		}
		// 输出看看
		// 可以看到数据为我们期望的反向排序了
		showSet(set); // [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

		// 我们指定更奇怪的排序,奇数在前面,偶数在后面
		// 我们使用匿名内部类
		TreeSet<Integer> set2 = new TreeSet<Integer>(new Comparator<Integer>() {

			public int compare(Integer o1, Integer o2) {
				if (o1 % 2 != 0) {
					if (o2 % 2 != 0) {
						return o2.compareTo(o1);
					}
					return -1;
				}
				if (o2 % 2 != 0) {
					return 1;
				}
				return o2.compareTo(o1);
			}
		});
		// 反向存入整数数据
		for (int i = 10; i >= 1; i--) {
			set2.add(i);
		}
		// 输出看看
		// 可以看到数据,技术的在前面,且从大到小排序
		// 偶数在后面,也是从大到小排序
		showSet(set2); // [9, 7, 5, 3, 1, 10, 8, 6, 4, 2]

	}

	/**
	 * 混合对象,你要为每个对象类型进行计较控制,避免出现转换异常.
	 */
	public static void testMix() {
		// 我们测试混合类型的对象,比如字符串和整数
		// 如果我们不指定自己的比较器,而使用默认的自然比较器
		// 将发生异常
		TreeSet set = new TreeSet(new Comparator() {

			public int compare(Object o1, Object o2) {
				// 我们用字符串比较好了
				return o1.toString().compareTo(o2.toString());
			}

		});
		for (int i = 10; i >= 1; i--) {
			set.add(i); // 存入整数
			set.add(i + ""); // 存入字符串
		}
		// 输出看看
		// 里面的内容确实按照字符串进行排序了。
		// 数字被转化为字符串再参与比较。
		showSet(set); // [1, 10, 2, 3, 4, 5, 6, 7, 8, 9]
	}

	/**
	 * 显示Set里面的数据。
	 * 
	 * @param set
	 */
	private static void showSet(Set set) {
		System.out.println(Arrays.toString(set.toArray()));
	}
}

// 注意,我指定了强制类型的比较器
class MyIntegerComparator implements Comparator<Integer> {

	public int compare(Integer o1, Integer o2) {
		return o2.compareTo(o1);// 使用反向的比较
	}
}


【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】 本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。 镂空遮罩 比较常用的有两种:矩形镂空遮罩、圆形镂空遮罩。 镂空遮罩 在游戏中常被当做新手引导必备的内容,可以给玩家更多不一样的体验。 下面就一起来看一下怎样做出这种效果吧! 阅读详情

相关推荐

Unsloth Desktop 本地大模型微调量化实战指南

大语言模型的本地化定制正在成为开发者与内容创作者的重要需求,而微调与量化则是其中最关键的两项技术。LoRA 与 QLoRA 通过仅训练少量低秩矩阵,大幅降低显存占用和训练成本,让消费级 GPU 也能完成模型适配;GGUF 格式则打通了训练与推理的边界,使微调后的模型可直接接入 Ollama、llama.cpp 等主流推理引擎。本文以 Unsloth Desktop 为切入对象,从其底层加速原理出发,梳理了环境准备、模型加载、对话测试、量化导出、微调验证及 API 批量调用的完整链路,并针对显存优化、端口冲突

weixin_29055137的博客 397

一起学习集合框架之 TreeSet

TreeSet 是一个具有唯一元素的二叉树的集合,又被翻译为树集。Java 中的 TreeSet 类是 Java 集合框架的一部分,从 Java 6 开始,它实现了接口(这个接口增加了几个查找元素以及反向遍历的便利方法),从而扩展了SortedSet集合。TreeSet 类与散列类十分相似,不过,它比普通的集合有所改进,树集是一个有序集合(sorted collection),该数据结构的元素按自然顺序排序。SortedSet接口提供了保持元素排序的功能。接口提供了可以通过SortedSet检索的功能。

jcc4261的博客 660

1.毫米波雷达心率、呼吸原理实现(一)实例

毫米波雷达心率、呼吸检测原理本项目分两到三篇文章写完,第一阶段借鉴TI开源项目以及根据自己的见解适当更改信号处理链通过AWR1843汽车雷达传感器和DCA1000采集卡采集数据完成人体呼吸和心跳检测算法的实现。第二阶段将仿真成功的代码搬移TIAWR1843传感器并通过串口数据实现生命体征的实时处理。本文即为第一阶段实现过程。本文首先概述毫米波雷达呼吸心跳检测的原理,紧接着概述本项目信号处理流程,另外本项目第一阶段通过matlab仿真验证算法的有效性,仿真源码可关注小编并私信可取。1.概述。

Poulen的博客 2万+

java排序

数组排序 数组有一个工具类Arrays,里面有一个静态方法sort(),可以实现排序,不过他只能升序。可以使用Comparator.reverseOrder进行降序。 如果自己写的引用对象想实现排序功能需要实现Comparable接口重写compareTo方法,即可排序。 用户实体类: package com.company.sort; import java.util.Objects...

demo_gsl的博客 421

STM32 IAP跳转后APP卡死?别慌,手把手教你修复HAL_RCC_OscConfig时钟配置冲突

本文深入分析了STM32 IAP跳转后APP在HAL_RCC_OscConfig函数中卡死的问题,揭示了PLL时钟配置冲突的根本原因。通过详细的代码示例和分步解决方案,指导开发者正确处理STM32F1/F4系列的时钟系统二次初始化问题,确保IAP+APP架构的稳定运行。

weixin_28685287的博客 365

【从零到一】Jetson Nano上YOLOv5部署完全攻略:零基础小白也能玩转边缘AI推理

文章摘要: 本文详细介绍了在Jetson Nano边缘设备上部署YOLOv5目标检测模型的完整流程。从硬件准备、系统镜像烧录、基础环境配置,到CUDA/cuDNN验证、Python虚拟环境搭建及PyTorch安装,逐步指导开发者完成部署准备。教程兼顾理论原理与实践操作,提供Python和C++两种实现方案,并涵盖TensorRT优化、实时检测等生产级应用场景,帮助零基础开发者快速掌握边缘AI推理技术,实现高性能目标检测应用。

LXY_LOVE36的博客 368

Java基础知识之TreeSet的使用

Java基础知识之TreeSet的使用

qq_45344586的博客 4670

Google Earth Engine——使用STARFM 图像融合算法将Landsat 和 MODIS 融合得出2000-2023 NDVI长时序图(空间分辨率为 30 米、时间分辨率为 16 天)

非本地入侵物种是全球生态系统面临的主要威胁之一。野葛(Pueraria montana)是一种生长迅速的藤本植物,原产于亚洲,现已入侵美国一些地区,因此该物种的管理成为一个重要问题。利用 Landsat 和 MODIS 平台收集的数据,计算了 2000 年至 2015 年肯塔基州三个侵扰地点的归一化差异植被指数(NDVI)估算值。使用 STARFM 图像融合算法将大地遥感卫星和 MODIS 得出的 NDVI 结合成空间分辨率为 30 米、时间分辨率为 16 天的时间序列。

此星光明博客 2509

TreeSet对String的排序

TreeSet集合底层是一个TreeMap TreeMap集合底层是一个二叉树 放到TreeSet集合中的元素等同于放到TreeMap集合key部分 TreeSet集合中的元素:无序不可重复,但是可以按照元素大小顺序自动排序 TreeSet集合放进去无序,拿出来有序 package collection; import java.util.TreeSet; public class TreeSetTest02 { public static void main(String[] args) .

枸杞仙人的博客 1420

华为OD新系统机试真题 2026.5.10 - 美观的灯笼

华为OD新系统机试真题【美观的灯笼】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【美观的灯笼】

qq_45776114的博客 642

代码的自由之旅:用AI写出无版权烦恼的Verilog

他们还基于这个数据集,训练了一个名叫“FreeV”的AI模型,不仅能写出好用的Verilog代码,还把版权侵权的风险降到了仅3%。为了让AI安全地写Verilog,研究团队提出了三个“法宝”:一个检测AI是否会生成侵权代码的测试方法、一个干净的Verilog数据集FreeSet,还有一个基于FreeSet训练的AI模型FreeV。AI的记忆力超强,能记住训练时见过的代码。测试发现,一些用Verilog数据训练过的AI,比如VeriGen,生成侵权代码的概率从9%涨到了15%,说明它们可能学了不该学的代码。

步子哥的博客 1810

Java TreeSet集合简介、常用方法详解

1. TreeSet简介 TreeSet 是通过 TreeMap 实现的一个有序的、不可重复的集合 2. 构造方法——API文档 3. 常用方法——API文档 3.1 添加元素3.2删除元素3.3 判断集合元素个数3.4 迭代器遍历集合4. 在类对象中实现compareTo()方法 ......

qq_52972504的博客 9403

[Dify实战]插件编写- 如何让插件直接输出文件对象(支持 TXT、Excel 等)

本文介绍了在Dify插件中实现文件对象返回的方法。通过create_blob_message()函数,开发者可以输出txt、Excel等格式文件,让用户直接下载而非复制文本。文章详细讲解了二进制文件生成的原理,提供了文本翻译和Excel报表生成的代码示例,并列出常见MIME类型对照表。这种技术能显著提升插件实用性,特别适用于翻译、报表生成等需要文件输出的场景,使交互体验从"复制粘贴"升级为"一键下载"。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1249

TreeSet类的学习

1.如果要对自定义类型施行默认排序,就需要自定义的类去实现Comparable接口,在该接口中你可以通过重写compareTo方法,去实现指定自定义类中的属性进行排序。如下面的代码,我让Student类去实现Comparable接口,并重写compareTo方法//这个是学生对象,将会使用TreeSet以学生的年龄进行比较/*** 获取*//*** 设置*//*** 获取*/return age;/*** 设置*/@Override。

Echo_Destiny的博客 312

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数学建模模型总结

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

Hashmap类和TreeSet类

Hashmap类: 对于Hashmap的用法,这里只是一道小例题。Hashmap是非常强大的类,而且应用广泛。具体查java API 和其他博客。 Gdufe_2018_Summer III(J)                                                                             Babelfish You have ju...

Harden13up的博客 467

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java中 TreeSet类用法

/*TreeSet的性能比 HashSet差但是我们 在需要排序的时候可以用TreeSet 因为他是自然排序也就是 升序 下面是TreeSet实现代码 这个类也似只能通过迭代器迭代元素*/import java.util.*;class Test{ private static

Programmer小卫 8595

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java :TreeSet 类

java :“TreeSet 类” 当要从集合中以有序的方式插入和抽取元素时,就可以使用 TreeSet 实现。 注意点:“添加到TreeSet 的元素是可排序的”。 TreeSet 类的常用方法: 方法名称 描述 TreeSet () 构建一个空的树集 TreeSet (Collection c) 构建一个树集,并且添加集合c 中所有元素 TreeSet ...

qq_44804494的博客 172

TreeSet对类进行排序

TreeSet存入的顺序跟存储的顺序不同,但是存储是按照排序存储的,但是它知道如何对类进行排序,毕竟类是可以改变的。所以TreeSet对类进行排序需要重写接口Comparactor内的compare方法 public static void main(String[] args) { Book b1 = new Book(); Book b2 = new Book(); b1...

一直哈哈哈的博客 428

练习19——TreeSet类的使用

1、创建Employee1类 package test4; import java.util.Objects; /** * 〈一句话功能简述〉<br> * 〈〉 * * @author abu * @create 2019/7/21 * @since 1.0.0 */ public class Employee1{ private String name;...

未来书剪 228

TreeSet类知识点

TreeSet类是Set接口的一个实现类,主要作用是用于对对象的排序以及确定存入对象的唯一性。给对象排序的方式有很多,比如一些基本类型int、String等类型就已经提供了很多排序的方法了,但是这并不说明TreeSet类就没有什么用了。在一些时候我们需要自定义一些类,同时需要对这个类的对象进行排序,那么这个时候我们就可以通过这个TreeSet类去自定义一个排序的条件。 本次有5名学生参加考试,当老...

SUNYAN_WADE的博客 619

TreeSet类的常见误用

一 TreeSet类的误用一 1 代码示例 import java.util.*; class Err{} public class TreeSetErrorTest { public static void main(String[] args) { TreeSet ts = new TreeSet(); // 向TreeSet集合中添加两个Err对象 t

实践求真知 963

TreeSet类之唯一特性

TreeSet类之唯一特性 一、概述 基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。 注意,如果要正确实现 Set 接口,则 set 维护的顺序(无论是否提供了显式比较器)必须与 equals 一致。这是因为 Set 接口是按照 equals 操作定义的,但...

qq_40298054的博客 516

java treeset类的排序规则_Java 中 TreeSet 集合类排序方法

TreeSet是依靠TreeMap来实现的。TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列,意味着TreeSet中的元素要实现Comparable接口。或者有一个自定义的比较器。TreeSet支持两种排序方法:自然排序和定制排序,TreeSet默认采用自然排序。Java常用类实现Comparable接口,并提供了比较大小的标准。实现Comparabl...

weixin_35849560的博客 3041

【集合】TreeSet类

TreeSet类实现了Set接口,它是用树形结构存储元素,对象按照升序存储,访问和检索的速度很快。我们在使用TreeSet存储数据时,尽量存储同一种类型的数据。 import java.util.Iterator; import java.util.TreeSet; public class TreeSetDemo { public static void main(String[]

技术|方法|思想 454

TreeSet类的排序

一 TreeSet类的排序概述 TreeSet采用红黑树的数据结构对元素进行排序。TreeSet支持两种排序方法:自然排序和定制排序。 自然排序:TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排列。 定制排序:TreeSet借助于Comparator接口的帮助。该接口里包含一个的int com...

iteye_5722的博客 251

TreeSet类简介

TreeSet时SortedSet接口的实现类,TreeSet可以保证元素处于排序状态,它采用红黑树的数据结构来存储集合元素。TreeSet支持两种排序方法:自然排序和定制排序,默认采用自然排序。   ♦ 自然排序  TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素的大小关系,然后将元素按照升序排列,这就是自然排序。如果试图将一个对象添加到TreeSet集合中,则该对象必须实现Comparable接口,否则会抛出异常。当一个对象调用方法与另一个对象比较时,例如obj1.

weixin_57763462的博客 376
上一篇: Set类汇总
下一篇: 数据库操作类
randomnet
博客等级 码龄19年 59粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值