还在用双层for循环?快来来试试这招吧(工作问题总结)

AI Agent双层记忆架构:基于PostgreSQL与向量检索的工程实践 在人工智能与软件工程领域,记忆系统是构建智能体(Agent)持续交互能力的关键基础设施。其核心原理在于通过结构化存储与高效检索机制,解决传统大语言模型上下文窗口有限、无法持久化知识的瓶颈。这一技术的核心价值在于使Agent能够跨越会话边界积累经验、形成个性化认知,从而从简单的对话工具演变为真正的智能助手。典型的应用场景包括个人数字助理、持续学习型编码助手、客户服务机器人等,它们都需要在保证会话连续性的同时,实现长期知识的沉淀与复用。本文聚焦于结合PostgreSQL与向量化技术,构建一个包含工作记忆与长期记 阅读详情

作为一名刚进公司实习的小白,在做一个模块的小功能时碰到了一个问题:
例如利用sql从库里查到了以下数据

itemCoderegion
1001武汉市
1001武汉市
1001武汉市
1002青山区
1002武汉市
1002江夏区
1002蔡甸区
1003武昌区
1003东西湖区
1003经开区
1003武汉市
……

现在的业务需求就是:
在同一个itemCode下如果region有且仅有市的话,这说明这个功能是市级功能
在同一个itemCode下如果region有且仅有区的话,这说明这个功能是区级功能
其他情况为市区级功能
然后分别统计市,区,市区分别有多少项
现在的情况是在库里面查出来的数据有一百多万条
而我的处理方式也是很粗暴,直接双层for循环暴力分组
我先将所有的itemCode相同的所有数据划分为一组
大概就是以下这种情况(别骂,俺确实比较蠢)
数据是通过ArrayList<String[]>传到业务层的,数组第一个位置放的itemCode,第二个位置放的Region
在这里插入图片描述用这种情况的话,一百多万条数据就是要执行一百万*一百万,直接给服务器干卡住了。这还不是最夸张的,我甚至还在遍历的同时修改我遍历的数据,并发修改异常在我眼力都没有存在感了吗
然后项目负责人就让我把这块儿再优化一下,那咱小白也不会啊,左思右想面向百度编程也不会啊,然后就求助组里的老大哥,老大哥给出了一下解决方案:

			int shi = 0;
	        int qu = 0;
	        int shiqu = 0;
	        int allTatal = 0;

	        ArrayList<String[]> allPcJieruData = DAO层接收到的数据;

	        Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
	        for (int i = 0; i < allPcJieruData.size(); i++) {
	            //分组
	            String itemCode = allPcJieruData.get(i)[0];
	            String region = allPcJieruData.get(i)[1];
	            ArrayList<String> groupList = map.get(itemCode);
	            if (groupList == null) {
	                groupList = new ArrayList<>();
	            }
	            groupList.add(region);
	            map.put(itemCode, groupList);
	        }
	        allTatal = map.size();
	        Iterator<Map.Entry<String, ArrayList<String>>> it = map.entrySet().iterator();
	        while (it.hasNext()) {
	            Map.Entry<String, ArrayList<String>> entry = it.next();
	            ArrayList<String> allist = entry.getValue();
	            Boolean isShi = false;
	            Boolean isQu = false;
	            for (int i = 0; i < allist.size(); i++) {
	                //如果全都是武汉市为市
	                //如果有市级也有区的为市区
	                //如果只有区的则为区
	                String regions = allist.get(i);
	                if (regions.equals("武汉市")) {//一旦该组中包含市,则点亮
	                	isShi = true;
	                } else {//否则表示该组中包含区,则点亮区
	                	isQu = true;
	                }
	            }
	         
	            if (isShi && isQu) {//如果有市级也有区的
	                shiqu++;
	            } else if (!isShi && isQu) {//如果只有区的则为区
	                qu++;
	            } else if (isShi && !isQu) {//如果全都是武汉市为市
	                shi++;
	            }
	        }

虽然说老大哥给出的解决方案可能没有各位正在看的大佬的解决方案优秀,但是至少比我的好太多了,最主要是避免了双层for循环以及我那预存的并发修改异常问题

记录成长,共同进步,大家要是有更好的方案希望能给小弟指点一下

面对海量数据用Excel无从下手?试试Jupyter吧 全文共4715字,预计学习时长10分钟 最近,一篇很有见地的文章《Jupyter即新型Excel》(Jupyter is the new Excel)备受瞩目。很多专业人士在应对大量数据分析任务时首选Excel,但文章作者Semi Koen认为,对于许多“大数据”难题来说,Jupyter笔记本会更有效。 如果你精通Jupyter兼容语言,你就会知道她在说什么,并且也不会真的打算用Excel来处... 阅读详情

相关推荐

Gemini不是挑战ChatGPT,而是重构工作流的AI操作系统

大模型正从单轮问答(Q&A)范式迈向多模态协同工作流——这一技术演进本质是AI从‘回答问题’转向‘消解问题’。其核心原理在于统一架构下的跨模态对齐、原生工具调用与动态知识图谱构建,技术价值体现在低延迟、高准确率与强场景自适应性。典型应用场景覆盖Gmail智能摘要、Docs实时重写、Sheets图表联动等企业级办公闭环。区别于通用对话模型,Gemini依托Google搜索基建与Workspace生态,实现身份、API、设备端深度集成,让AI能力自然嵌入用户每日第17个标签页。本文聚焦Gemini作为‘下一代工

weixin_33835103的博客 463

常见开发问题:双重for循环遍历优化

双重for循环优化方案

m0_61799540的博客 5720

遗传算法实战:Python实现100皇后问题求解

遗传算法是一种受生物进化启发的全局优化方法,其核心在于模拟选择、变异与种群演化过程,通过适应度驱动搜索方向。在组合优化领域,它特别适用于约束强、解空间离散且难以求导的问题,如N皇后这类排列编码型任务。本文聚焦工程落地,详解如何设计合法种群初始化、抗干扰的适应度函数(如1/(q+0.001))、面向排列结构的变异策略,以及收敛判断与可视化验证等关键环节。内容覆盖从零编码到稳定求解100皇后全过程,强调参数敏感性、浮点精度陷阱、内存控制与调试技巧,为算法工程师提供可复用的Python实践范式。

weixin_30908941的博客 369

常见踩坑点:双层 for 循环千万别这样写了!

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 5分钟。来自:blog.youkuaiyun.com/qq_35387940/article/details/12951889前言本篇分析的技巧点其实是比较常见的,但是最近的几次的代码评审还是发现有不少兄弟没注意到。所以还是想拿出来说下。正文是个什么场景呢?“就是 for循环 里面还有 for循环, 然后做一些数据匹配、处理 这种场景。我...

良月柒 327

程序员的纯文本日志实践:programming.log 工作流

编程日志(programming log)是一种面向开发者思维过程的技术记录方式,其核心在于用最简化的纯文本格式,实现低认知负荷、高可追溯性的技术反思与知识沉淀。它基于时间线性结构而非标签分类,依托 Unix 工具链(grep/vim/git)达成零依赖、抗格式腐烂、跨平台一致的工程可靠性。相比传统笔记工具,它更强调‘记录即思考’的即时性与真实性,天然适配调试复盘、架构决策、代码审查等高频开发场景。作为 developer journal 的轻量级实现,它不替代文档系统,而是补全了从代码提交到思维留痕之间的

rongdmmap的博客 390

手把手教你用SIMCOM A7670C_FASL模组实现双路MQTT连接阿里云(附完整源码)

本文详细介绍了如何使用SIMCOM A7670C_FASL 4G模组实现双路MQTT连接阿里云,包括硬件配置、开发环境搭建、双路MQTT架构设计及实现细节。通过完整的源码示例和实战指南,帮助开发者快速掌握物联网设备开发中的多路MQTT连接技术,提升工业级应用的开发效率。

weixin_33696822的博客 226

matlab避免使用for_如何能有效的避免双重for循环啊?加快运算速度?

%风场m_var=51;n_var=51;T_fengchang=3600;%风场周期T_yantuan1=30;T_U=24*3600/T_fengchang;T_fengchang1=6;T_fengchang2=10;T_fengchang3=T_U+1;U_fengxiang=[linspace(37,37,T_fengchang1),linspace(37,37,T_fengchang2...

weixin_31139027的博客 599

HP MSA 2050磁盘阵列配置步骤

一、盘阵与服务器直接连接 1.1 单控制器配置:一台服务器/ 一个 HBA/ 单路径 1.2 双控制器配置:两台服务器/ 每台服务器一个 HBA/ 双路径 二、通过交换机(一般光纤交换机) 2.1 双控制器配置:两台服务器/ 两台交换机 三、配置MSA2050 3.1在完成硬件安装后,可以访问控制器模块的基于 Web 的管理界面 SMU (存储 管理实用程序),以便监视和管理此存储系统。 首先...

jw5493的博客 1万+

拒绝双重for循环的操作

双重for到单重for的代码优化

Oliver_Liuqifan的博客 215

关于自制的《航空学报》latex模板(非官网模板)

《航空学报》的官网只提供了word模板,并且该期刊投稿只需要pdf版本不需要源文件。为方便latex爱好者撰写论文,提供该模板及说明给广大科研人士~

qq_37105055的博客 4688

保姆级教程:用YOLOv5+ROS2 Humble搞定奥比中光Dabai DCW深度相机的3D物体定位

本教程详细介绍了如何使用YOLOv5模型和ROS2 Humble系统,结合奥比中光Dabai DCW深度相机实现3D物体定位。从环境配置、模型部署到深度数据融合,提供完整的实战指南,帮助开发者快速掌握三维坐标提取技术,适用于机器人开发和计算机视觉应用。

weixin_26765363的博客 270

避免双重for循环寻找相同条件拖慢查询速度

为避免双重for循环,而使用map寻找对应键值

qq_42821819的博客 487

告别编译噩梦:Vcpkg+Cmake一站式集成Tesseract-OCR C++开发环境(Windows)

本文详细介绍了如何在Windows系统上使用Vcpkg和CMake快速集成Tesseract-OCR C++开发环境,解决传统编译过程中的依赖问题。通过一键安装和自动化配置,开发者可以高效搭建OCR识别系统,支持中英文识别,并提供了常见问题的解决方案和进阶技巧。

weixin_29009339的博客 231

强烈建议收藏!全网首发Andrey Karpathy的AI循环工作流(附复现Prompt)

摘要: 本文介绍了AI领域的“循环工程”方法,由安德烈·卡帕西(Andrej Karpathy)提出的“卡帕西循环”通过自动化目标驱动任务,显著提升效率。传统提示式AI交互需人工逐步输入指令,而循环工程让AI自主规划、执行、验证并迭代,无需持续干预。

sexy19910923的博客 312

发那科机器人抓手与物料搬运阀的配置与优化实践

本文详细介绍了发那科机器人抓手与物料搬运阀的配置与优化实践,包括基础配置指南、阀岛与输入模块的详细设置、测试程序编写与验证技巧,以及常见问题排查与性能优化建议。通过实际案例和经验分享,帮助技术人员快速掌握关键配置步骤,提升物料搬运系统的稳定性和效率。

weixin_33738555的博客 382

13、超声断层乳腺图像融合算法:乳腺癌诊断新突破

本文介绍了一种新型超声断层乳腺图像融合算法,通过结合超声透射(UTTc、UTTα)和反射断层图像(URT),实现对乳腺组织的多参数自动可视化。该算法能有效区分良性与恶性肿瘤,具有高准确性、无辐射、低成本等优势,适用于大规模乳腺癌早期筛查。初步临床测试验证了其可行性,未来有望成为乳腺癌诊断的新标准。

9q8w7e6r5的博客 151

FreeRTOS任务卡死?试试这个精准监控方案(附完整代码)

本文针对FreeRTOS系统中任务卡死难以定位的问题,提出了一套精准的任务级监控方案。该方案利用事件组为每个任务建立独立心跳,通过监控任务和双层阈值算法实现故障的精准检测与分级恢复,并提供了完整的代码实现与配置指南,有效提升多任务系统的可靠性与可维护性。

weixin_29248313的博客 580

ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

方案二是在PS端的MPU配置中,将DMA缓冲区所在的内存区域标记为“不缓存”(Device或Strongly Ordered类型),但这样CPU访问这些内存区的速度会大幅降低,需要根据实时性和数据正确性的需求做权衡。更妙的是,描述符链表可以做成一个环状队列,放在DDR里让DMA循环取走,从而实现持续不断的“流式”传输。用FPGA实现FFT硬件加速的系统中也是如此:PS向PL提交待处理的FFT数据,PL硬件加速计算后,DMA把结果写回DDR,全程CPU几乎只做配置调度,大量数据吞吐留给了硬件通道。

QQ_778132974的博客 171

PHP两文件嵌套循环引用,php的循环与引用的一个坑,php循环引用_PHP教程

php的循环与引用的一个坑,php循环引用上代码$arr = array('a'=> 'a11','b'=> 'b22','c'=> 'c33',);foreach ($arr as $k=>&$v){//Do somethind}foreach ($arr as $k=>$v){var_dump($v);}这样的代码, var_dump 会输出什么? 各位...

weixin_30471013的博客 188

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

第十一篇.HFM规则入门(四:深入浅出For语句)

前面我们介绍了exp函数的使用,笔者非常建议读者认真阅读官方文档关于exp函数的经典使用。这篇介绍H FM 规则中的For语句,f or 循环的用法在任何语言中表达的含义都是一样的,循环扫描集合进行逻辑处理,在H FM 规则中也不例外。 For语句,笔者对它是又爱又恨,for语句实现逻辑简单明了,可读性强,是初学者的必然选择。但是For循环也是性能杀手,我们说HFM 运行计算或者合并耗时,产生性能问题,往往都是f or 循环在作祟。但是有的场景,比如很多时候我们要扫码I CP 维度时,就必须要用for循环

chenjiang89的专栏 1068

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

AutoReason框架:用双层模型架构解决LLM多步推理难题

大语言模型在复杂逻辑推理任务中常出现错误,这源于其多步推理能力的不足。思维链提示技术通过引导模型分步思考来提升推理可靠性,但其依赖人工设计示例,泛化能力有限且成本高昂。AutoReason框架创新性地采用双层模型架构,将推理过程分解为“规划”与“执行”两个阶段:由GPT-4等强模型担任“军师”,负责分析问题并生成结构化的推理轨迹;再由GPT-3.5等经济模型作为“士兵”,严格遵循轨迹执行计算。这种分工协作模式在工程实践中实现了质量与成本的平衡,显著提升了复杂问题求解的可解释性和稳定性,适用于需要严谨逻辑的金

weixin_34221276的博客 469

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Seele RPA Bridge API参考:5个核心端点与Bearer Token安全调用全解

Seele RPA Bridge 是 Seele 桌面助手内置的一个带 Token 保护的本地 HTTP 接口,用于让 Botmux(或你自己的脚本)远程列出、触发并追踪影刀 RPA 工作流。它默认监听 `http://127.0.0.1:8765`,通过 5 个核心端点完成"查询 → 提交 → 跟踪 → 回报"的完整闭环,并强制使用 `Authorization: Bearer <token>`

gitblog_00279的博客 425

Claude Code Harness:AI 自主开发终极框架,一个循环搞定 Plan-Work-Review-Release

**Claude Code Harness** 是一款面向 AI 编程 Agent 的自主开发框架(Dedicated Development Harness),通过 Plan(计划)→ Work(实现)→ Review(评审)→ Release(发布)四个阶段的闭环循环,让 Claude Code 等 AI 助手在安全边界内自主完成高质量开发。它不靠"让模型更聪明",而是靠"固定流程和边界"来保

gitblog_00600的博客 406

货拉拉2018秋招Java笔试题复盘:考点剖析与避坑指南

Java后端校招笔试中,基础知识的深度理解往往决定了能否进入下一轮面试。从JVM内存区域与垃圾回收,到并发编程中的锁升级与线程池参数,再到集合框架的HashMap扩容机制,这些核心概念并非孤立记忆点,而是相互关联的工程实践基石。理解其底层原理,才能在面对线上Full GC排查、订单超时取消等真实场景时从容应对。本文以货拉拉2018秋招Java工程师笔试题为样本,逐题剖析高频考点背后的出题意图,总结选择题陷阱、编程题答题策略以及备考复习方法,帮助应届生和初级开发者避开常见误区,构建系统化Java知识体系。

weixin_27102543的博客 303

Nukeygara Akeytsu(3D动画制作软件)官方正式版V20.3.5 | 动画制作软件哪个好用

Nukeygara Akeytsu 2020 是一款非常优秀且设计新颖功能完整的高效专业3D动画制作软件,旨在重新考虑“针对艺术家而非工程师”的角色装配和动画制作过程,通过全屏视口和一组浮动调色板显示尽可能大的装配角色,开发的初衷就是为广大用户提供一个相当完整的制作动画的工具合集以及一个简单高效又实用的工作流程与方式,拥有3D行业中所有软件中最快的学习曲线之一,使用同类产品中最高效的关键帧编辑器Akeytsu Stacker来管理关键帧,用户直接在蒙皮的网格上...

chaorenqiang的博客 878

卖货文案不会写?试试这5个方法(二)

​本文继续分享:卖货文案不会写?有这18个文案写法就不愁! 02 激发购买欲望 文案无法创造购买商品的欲望,只能唤起原本就存在于百万人心中的希望,梦想,恐惧或者渴望,然后将这些 “原本就存在的渴望” 导向特定商品。 简言之,文案不是创造购买欲,而是激发购买欲。 牢记一句话:理性的说服是后天的学习成果,而感性的诱惑是先天的本能。 1.感官占领 人类几乎所有的体验感受都来自他的感官,比如眼睛,鼻子,耳朵,当你告诉读者你的产品美味可口时,他的感官是没有被调动的。 怎么做的? 假设读者正在使用你的产品,然后描述体验

HLWYXJH的博客 1614
上一篇: 删除win10无限嵌套文件夹
下一篇: DNS的由来
大锤997
博客等级 码龄6年 4粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值