算法竞赛中的常用JAVA API :HashSet 和 TreeSet

蓝桥杯国赛Java真题精讲:从差分算法到竞赛实战策略 在算法竞赛与工程实践中,数据结构与算法的深度融合是解决复杂问题的核心能力。差分算法作为一种基础而强大的思想,通过将区间操作转化为端点操作,能够高效处理数组修改与查询问题,其原理在于利用前缀和的逆运算来优化时间复杂度。掌握差分技巧不仅能提升代码性能,更是理解更高级数据结构和算法设计模式的重要阶梯。在Java编程竞赛如蓝桥杯中,此类技术常与动态规划、图论等高频考点结合,考察选手对问题本质的抽象与建模能力。本文以一道典型的国赛真题为例,深入剖析差分思想在区间取反问题中的应用,并延伸至区间加法定值、多次操作求最终状 阅读详情

了解其他JAVA 常用API和算法点这里 >> https://blog.youkuaiyun.com/GD_ONE/article/details/104061907

set容器的特点是不包含重复元素,也就是说自动去重。

HashSet

HashSet基于哈希表实现,无序。

add(E e)//如果容器中不包含此元素,则添加。
clear()//清空
contains(Object o)//查询指定元素是否存在,存在返回true
isEmpty()// 判空
iterator()//返回此容器的迭代器
remove// 如果指定元素在此set中则移除
size()//返回元素数量

TreeSet

基于红黑树实现。有序。

add(E e)// 如果不存在,则添加。
clear()//清空
contains(Object o)//查询指定元素是否存在,存在返回true
isEmpty()// 判空
iterator()//返回此容器的迭代器
remove// 如果指定元素在此set中则移除
size()//返回元素数量

以上方法都和HashSet一致,由于是红黑树实现的,所以TreeSet和TreeMap可以二分查找一个比当前元素大的最小元素,或者比当前元素小的最大元素。

ceiling(E e)//返回一个大于等于当前元素的最小元素,不存在返回null
floor(E e)//返回一个小于等于当前元素的最大元素,不存在返回null

higher(E e)//返回此 set 中严格大于给定元素的最小元素,不存在返回null
lower(E e)//返回此set中严格小于给定元素的最大元素,不存在返回null

first()//返回第一个元素
last()//返回最后一个元素

声明:

TreeSet<Integer> s = new TreeSet<>(); 
HashSet<Integer> s = new HashSet<>(); 

实例:

static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
	static TreeSet<Integer> s = new TreeSet<>();
	public static void main(String[] args) throws IOException {
		s.add(10);
		s.add(20);
		s.add(30);
		
		Iterator<Integer> it = s.iterator();
		while(it.hasNext()){ // 遍历
			int x = it.next();
			out.write(x+"\n");
		}
		out.write("\n");
		out.write(s.lower(20)+"\n"); // lower
		out.flush();
	}

输出:
10
20
30

10
蓝桥杯国赛JAVA B组算法竞赛深度复盘与实战指南 算法竞赛是检验编程与算法能力的重要途径,其核心在于对基础算法与数据结构的深入理解和灵活运用。从原理层面看,动态规划、图论、递归回溯等经典算法构成了解决问题的基石,它们通过状态定义、搜索策略和优化剪枝来提升计算效率。这些技术的价值不仅在于解决竞赛题目,更能培养对计算复杂度的敏感性和复杂逻辑的抽象能力,这是软件工程师的核心素养之一。在应用场景上,算法能力广泛应用于大数据处理、系统性能优化和复杂业务逻辑实现。本文以蓝桥杯国赛JAVA B组为具体案例,深入复盘了包括动态规划、博弈论等典型题型的解题思路,并针对JAV 阅读详情

相关推荐

zTree 中文API

zTree是一个很强大的树形插件,但是在使用过程中少不了遇到一些问题,这里给大家分享一个中文的API(.chm格式的)。

AcWing 196. 质数距离(筛法+离散化)打卡

给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对。 同时,你还需要找到距离最远的两个相邻质数D1和D2(即D1-D2是最大的),如果存在相同距离的其他相邻质数对,则输出第一对。 输入格式 每行输入两个整数L和U,其中L和U的差值不会超过1000000。 输出格式 对于每个L和U ,...

weixin_30500473的博客 247

Java Tree API-开源

该项目旨在提供可扩展的Tree接口,以补充Java Collections框架,从而充分利用Java 5泛型。 作为该项目范围的一部分,将至少提供一个参考实现。

JTree操作API

JTree操作API归纳1.1 创建树组件1.1.1 最简方式:    JTree tree = new JTree();    在显示时,树组件会带上JTree默认的节点。1.1.2 指定树的节点后创建树:        DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");    root.add

2816

画了多年板子才搞懂:Allegro内电层负片连接,Thermal Relief和Anti-Pad避坑全解析

本文深入解析Allegro内电层设计中Thermal Relief与Anti-Pad的关键技术要点,帮助工程师避免常见设计陷阱。通过六层板实战案例,详细阐述负片连接逻辑、热风焊盘参数设计及隔离盘优化策略,提升PCB设计的可靠性与EMI性能。

weixin_28731223的博客 265

工厂自动化布线实战:从功率计算到线槽布局的完整避坑指南

本文详细介绍了工厂自动化布线的实战经验,从功率计算到线槽布局的完整避坑指南。通过三步计算法确定线径需求,强调电压降控制的重要性,并分享线槽布局的50%法则和强弱电分离技巧。特别针对移动设备和多芯信号线提供专业解决方案,帮助工程师避免常见错误,提升布线效率和质量。

weixin_29266007的博客 355

Java集合 - TreeMap

Java集合 - TreeMap

qq_43350524的博客 3253

Tomcat漏洞——弱口令爆破

靶机:CentOS7 IP:192.168.100.40。攻击机:kali IP:192.168.100.60。版 权 声 明:本博客所有文章除特别声明外,均采用。文章版权归作者所有,未经允许请勿转载!作 者:PeiyuJue。

weixin_57379923的博客 910

HashSet类与Hash算法

HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。 HashSet特点: 1.不能保证元素的排列顺序 2.HashSet不是同步的,如果多线程同时访问一个HashSet,则必须通过代码来保证其同步 3.集合元素可以是null Hash算法,也称哈希、散列,它能保证通过一个对象快速查找到另一个对象。 Hash算法的价值在于速度,它可以保证查询被快速执行。 H

一分耕耘 一分收获 1503

Apollo&Carla联合仿真基本操作

基于UE4开发的开源无人驾驶仿真器PythonAPI自动驾驶传感器(还有理想化的collision detection传感器)用于规划和控制的快速仿真地图生成交通场景(open scenario)仿真ROS集成自动驾驶baseline0.9.15新特性新的车型以及地图基于Omniverse的素材导入基于OSM的三维场景生成。

SLAM小土堆 3801

Cursor概述及环境配置

Cursor 是一款基于 AI 的代码编辑器,支持 VS Code 配置迁移和 Java 开发环境配置。主要功能分为 Cursor Settings(AI 相关设置)和 Editor Settings(基础编辑器设置)。用户可通过一键导入或手动方式迁移 VS Code 配置,配置包括主题、扩展和快捷键等。对于 Java 开发,需配置 JDK 和 Maven 路径,并安装 Java 扩展插件以获得完整开发体验,如代码补全、调试和 Maven 项目管理。此外,Cursor 支持汉化配置,用户可安装中文语言包切换

Knight 3557

Java集合框架篇-63-TreeSet集合练习题

       这篇,我们通过前面学习的TreeSet集合和比较器的知识,我们来做几个练习题。在完成练习过程中,我们重点放在问题分析这个步骤上面,只有分析的思路的正确性,才能写出正确的代码,完成编程练习题。第一题在一个集合中存储了无序并且重复的字符串,定义一个方法,让其有序(字典排序)还不能去除重复的元素输出。分析过程:1)定义一个List集合,并存储重复的字符串元素2)定义方法,对其排序,保留重复...

Anthony_tester的博客 2858

学Simulink--基础储能管理场景实例:基于Simulink的储能SOC均衡控制策略仿真

本文完成了基于 Simulink 的储能 SOC 均衡控制策略仿真,实现了:✅掌握并联系统 SOC 分化机理✅构建基于电流重分配的主动均衡架构✅验证均衡对系统可用容量的显著提升✅实现 SOC 偏差 < 2% 的高精度控制。

amy_mhd的博客 85

JAVA常用API整理

欢迎转载,转载请注明出处:https://blog.youkuaiyun.com/u013547284/article/details/71158100 一、JAVA常用API java.lang.Math 提供sin, cos, tan, exp, log, log10 等类方法,PI和E等类字段 java.lang.String(StringBuilder线程不安全,StringBuffer线程安...

郭大侠写leetcode 5万+

【nerfStudio】1-在windows上安装nerfStudio

安装Git。安装Visual Studio 2022。在安装CUDA之前必须完成此步骤。必须在“桌面开发与C++”工作流程(在BuildTools版本中称为“C++构建工具”)中包含所需的组件。Nerfstudio要求。我们建议使用conda来管理依赖关系。在继续之前,请确保安装了Conda。 依赖关系 PyTorch 请注意,如果安装了低于2.0.1的PyTorch版本,则应卸载先前版本的pytorch、functorch和tiny-cuda-nn。 基于CUDA 11.8的Torch 2.0.1 安装基

dlhlSC的博客 1693

智能车图像处理16-进阶篇8--右环岛状态机与补线

这篇文章主要讲述智能车竞赛中如何判断右环岛并且进行状态补线。

taiyuezyh的博客 1万+

Java算法竞赛常用API指南

/ 1. 自定义Comparator// 降序// 2. 对自定义对象排序int age;if (p1.age!});

weixin_60268064的博客 228

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java集合相似度计算与算法竞赛实战

集合操作是编程中的基础概念,通过哈希表等数据结构实现高效元素查询。在Java中,HashSet利用哈希算法实现O(1)时间复杂度的contains操作,成为处理集合运算的首选。集合相似度计算通过Jaccard系数(交集与并集之比)衡量数据关联性,这种技术在推荐系统、文本去重等场景有重要应用。本文以天梯赛L2-005为例,详解如何使用HashSet优化竞赛题的集合相似度计算,包括输入处理、核心算法实现和输出格式化等关键环节,特别适合准备PAT等编程能力测试的开发者参考。

weixin_34377919的博客 304

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java比赛常用API总结

1.栈和队列 1.1 栈的常用方法 //1.栈顶插入元素 push(element) //2.返回栈顶元素并弹出栈顶元素 pop() //3.返回栈顶元素但不弹出 peek() //4.清空栈 clear() //5.返回栈中元素个数 size() //6.判断栈是否为空 isEmpty() //7.获得指定索引元素 get(index) //8.更改指定索引处的元素 set(index,ele...

m0_56312312的博客 432

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝桥杯JAVA-7.集合(容器)在竞赛中的使用

目录 介绍一些在竞赛中会用到的集合(容器),和使用方法。具体一些的用法可见《JAVA基础学习-集合》 而本文是快速介绍和一些基本用法。最主要的还是要知道有这些东西,比赛时针对不同的场景用不同的集合(容器)。因为我从C++转过来的,所以对C++里面的容器使用比较了解。而本文不仅会把JAVA中特有的集合介绍一下,还会把C++中的容器如何在JAVA中使用也介绍一下。因为,C++中的一些容器确实很好用而且用的还挺多,但在JAVA中却很少。 1.JAVA ArrayList、LinkedList、HashSet、Tr

墨水记忆 6321

深入浅出 Java 有序集合:TreeSet 与 TreeMap 详解

在算法竞赛或高性能系统开发中,我们经常需要动态维护一组,例如实时排序、寻找最接近的数值或进行区间查询。在这种场景下,Java 集合框架中的和便是不可或缺的“神兵利器”。

一个coder的博客 5270

java常用竞赛api算法模版笔记(自用备份)(蓝桥杯javab国一)

【代码】java常用竞赛api算法模版笔记(自用备份)

ddb123456789的博客 210

蓝桥杯国赛Java真题深度复盘:从算法思维到实战避坑指南

算法思维是计算机科学的核心,它强调将复杂问题分解为可执行的逻辑步骤。其原理在于通过抽象、模式识别和逻辑推理,构建高效的解决方案。掌握算法思维的技术价值在于能显著提升问题解决能力和代码质量,是应对技术面试和开发复杂系统的基石。在算法竞赛、软件开发和系统优化等应用场景中,这种思维模式尤为重要。本文以2016年第七届蓝桥杯国赛Java真题为具体案例,深入复盘了包括**模拟与实现**、**递归与回溯**在内的核心解题思路,剖析了从暴力枚举到优化剪枝的完整思考过程,并总结了编码中常见的“坑点”与调试技巧,为读者提供了

weixin_34280237的博客 468

蓝桥杯Java算法实战:从API应用到BFS搜索的深度复盘与避坑指南

算法竞赛不仅是技巧的比拼,更是对编程语言特性和工程实践能力的综合考察。以Java为例,其丰富的标准库API(如集合框架、时间处理、大数运算)是解决实际问题的利器,理解其底层原理和适用场景至关重要。例如,在搜索类问题中,广度优先搜索(BFS)是求解最短路径的经典算法,其核心在于队列的数据结构和访问标记的严谨处理,以避免死循环和性能问题。掌握这些基础算法和API的工程化应用,能够高效解决诸如日期计算、迷宫寻路等经典场景问题,这正是提升编程实战能力的关键。本文通过对蓝桥杯真题的深度剖析,结合集合框架选型、BFS实

weixin_34124651的博客 521

Java算法优化与洛谷解题实战指南

算法能力是程序员的核心竞争力,尤其在处理大规模数据时,高效的算法实现至关重要。Java作为主流编程语言,其内存管理和性能优化特性在算法竞赛中尤为关键。通过合理选择数据结构(如PriorityQueue、TreeSet)和优化IO处理(如BufferedReader替代Scanner),可以显著提升程序执行效率。动态规划、图论等经典算法在洛谷平台的实际题目中,结合Java特性如Lambda表达式、Stream API等,能够实现代码的简洁与高效。本文通过具体案例(如P1006传纸条问题)展示Java在算法实现

weixin_33913332的博客 541

JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示

随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构、算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 、TreeSet集合 Set集合的元素是不反复且无序 一、HashSet集合 API文档解释:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭...

weixin_34128501的博客 95
上一篇: 算法竞赛中的常用JAVA API :HashMap 和 TreeMap
下一篇: 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)
Androids_lost_Sheep
博客等级 码龄8年 1022粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值