两个list中存放相同的对象,一个是页面导入,一个是从数据库查询,外部传入一个集合存放的是对象的属性名称,根据属性名称处理两个list
需求:两个list中存放相同的对象,一个是页面导入,一个是从数据库查询,外部传入一个集合存放的是对象的属性名称.要求根据传入的属性(多个)判断两个list中是否有重复的对象, 如果重复则删除数据库的list, 然后合并两个list.
/*** 处理导入和数据库重复数据* @param list* @param listKey* @return*/
default List<T> processImportAndDatabaseDuplicateData(List<T> list, List<String> listKey) {// 获取数据库中的全部数据List<T> listEntityDatabase = this.list(null);// 如果数据库中的数据与提交数据有重复则删除数据库的数据listEntityDatabase.removeIf(obj2 -> list.stream().anyMatch(obj1 -> compareObjectsByProperties(obj1, obj2, listKey)));list.addAll(listEntityDatabase);return list;
}default boolean compareObjectsByProperties(T n, T o, List<String> mappingTableKeys) {return mappingTableKeys.stream().allMatch(propertyName -> {Object value1 = getPropertyValue(n, propertyName);Object value2 = getPropertyValue(o, propertyName);return value1 != null && value1.equals(value2);});
}default Object getPropertyValue(T item, String propertyName) {try {return item.getClass().getDeclaredMethod("get" + capitalize(propertyName)).invoke(item);} catch (Exception e) {e.printStackTrace();}return null;
}default String capitalize(String str) {if (str == null || str.isEmpty()) {return str;}return Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
相关文章:
两个list中存放相同的对象,一个是页面导入,一个是从数据库查询,外部传入一个集合存放的是对象的属性名称,根据属性名称处理两个list
需求:两个list中存放相同的对象,一个是页面导入,一个是从数据库查询,外部传入一个集合存放的是对象的属性名称.要求根据传入的属性(多个)判断两个list中是否有重复的对象, 如果重复则删除数据库的list, 然后合并两个list. /*** 处理导入和数据库重复数据* param list* param l…...

为什么C++能搜到的框架介绍都好抽象?
为什么C能搜到的框架介绍都好抽象? 那是因为c每次都要自建生态 随便一个库发展到一定阶段,它就开始跨界,做得又大又全 结果就是,虽然都叫c,但其实是由一大堆不同生态组成的统称 c跟c的差异,比java跟c的差…...

人工智能(6):机器学习基础环境安装与使用
1 库的安装 整个机器学习基础阶段会用到Matplotlib、Numpy、Pandas等库,为了统一版本号在环境中使用,将所有的库及其版本放到了文件requirements.txt当中,然后统一安装 新建一个用于人工智能环境的虚拟环境 mkvirtualenv ai matplotlib3.8…...

电力巡检/电力抢修行业解决方案:AI+视频技术助力解决巡检监管难题
一、行业背景 随着国民经济的蓬勃发展,工业用电和居民用电需求迅速增加,电厂、变电站、输电线路高负荷运转,一旦某个节点发生故障,对生产、生活造成巨大的影响。目前电力行业生产现场人员、设备较多,而生产监督员有限…...
区块链轻节点的问答
EOS的nodeos并没有获取merkle proof的功能,那应该怎样获取merkle proof nodeos(EOS区块链节点软件)本身并不提供Merkle Proof的功能,而是全节点或其他数据源通常提供Merkle Proof。获取Merkle Proof的过程通常需要与全节点或区块浏…...

常用Web安全扫描工具汇整
漏洞扫描是一种安全检测行为,更是一类重要的网络安全技术,它能够有效提高网络的安全性,而且漏洞扫描属于主动的防范措施,可以很好地避免黑客攻击行为,做到防患于未然。 1、AWVS Acunetix Web Vulnerability Scanner&a…...

查看当前cmake版本支持哪些版本的Visual Studio
不同版本的的cmake对Visual Studio的版本支持不同,以下图示展示了如何查看当前安装的cmake支持哪些版本的Visual Studio。 1.打开cmake-gui 2.查看cmake支持哪些版本的Visual Studio...

岩土工程桥梁监测中智能振弦传感器的应用方案
岩土工程桥梁监测中智能振弦传感器的应用方案 岩土工程桥梁监测是重要的安全保障措施,而智能振弦传感器是其中一种有效的监测手段。它可以通过测量桥梁振动的频率和幅值,监测桥梁的健康状态,预测可能出现的问题,并及时采取措施进…...

上云容灾如何实现碳中和-万博智云受邀参加1024程序员节数据技术论坛并发表演讲
近日,2023长沙中国1024程序员节在长沙召开。 长沙中国1024程序员节继2020年后已成功连续举办三届,逐步成为 IT 行业引领技术前沿、推动应用创新发展的高影响力年度盛会。是 IT 领域新技术、新产品、新服务的重要发布平台。 万博智云CEO Michael受邀参加…...

蓝桥杯每日一题2023.10.26
测试次数 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 对于本题我们可以使用动态规划来分析 dp[i][j]代表剩余i层,j台手机的情况下对应的测试数量 分类进行讨论一下: 1.当只剩下一台手机的时候,只能从第一层一层一层往上尝试,…...

[已解决]安装的明明是pytorch-gpu,但是condalist却显示cpu版本,而且torch.cuda.is_available 也是flase
问题; 安装了gpu版本的pytorch,但是显示的torch.cuda.is_available()却是flase。 conda list查看 版本显示只有cpuonly 在网上找了半天,也没有解决办法。 仔细看了一下,发现,有个单独的包叫cpuonly,不知道…...

[数据分析与可视化] 基于Python绘制简单动图
动画是一种高效的可视化工具,能够提升用户的吸引力和视觉体验,有助于以富有意义的方式呈现数据可视化。本文的主要介绍在Python中两种简单制作动图的方法。其中一种方法是使用matplotlib的Animations模块绘制动图,另一种方法是基于Pillow生成…...
MySQL基础入门教程(InsCode AI 创作助手)
MySQL基础入门教程:从安装到查询 MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了强大的数据存储和查询功能。无论是新手还是有经验的开发人员,本篇技术博客将带深入了解MySQL的基础知识,包括安装、配置、数据库操作和查…...

【Linux】 rpm安装包保存到本地并批量安装
目录 一、开启rpm安装包缓存到本地仓库 1. 修改yum.conf文件 2. 清理yum缓存 3. yum命令安装软件包 二、如何将rpm安装包保存到指定目录 方法一:yumdownloader 1. 安装yum-utils 2. yumdownloader命令参数说明 3. yumdownloader安装示例 方法二ÿ…...

数据分析案例-某公司员工数据信息可视化(文末送书)
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...

浅谈wheel滚轮事件
<divonWheel{(ee) > {// new WheelEvent(自定义,e) 获取 e[wheelDelta],e[deltaY] 判断滚轮方向var e new WheelEvent(syntheticWheel,ee)console.log(滚动触发事件, e,ee);console.log(滚动触发事件e.wheelDelta, e[wheelDelta],e[deltaY]);console.log(滚动触发事件e.…...

FTP服务器操作手册
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP协议是File Transfer Protocol(文件传输协议),专门用来传输文件的协议。FTP服务器是企业里经常用到的服务器,今天就介绍一…...
Android使用Glide类加载服务器中的图片
Glide类用于从服务器中获取图片并加载进ImageView。 一、添加依赖 Glide为第三方框架,使用时需添加依赖: 在 Gradle Scripts / build.gradle(Module:app) / dependencies方法 中添加 implementation com.github.bumptech.glide:glide:4.12.0 添加后…...

【打靶】vulhub打靶复现系列3---Chronos
【打靶】vulhub打靶复现系列3---Chronos 一、主机探测 结合之前的方法(arp探测、ping检测),因为我们的靶机和攻击机都在第二层,所以打靶时候我们更依赖arp协议 tips:我在运行期间发现,netdiscover窗口没关…...

基于Java的新闻发布管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...