public static void main(String[] args) {
List<EmpQuDaoOneAdmin> empQuDaoOneAdmins = new ArrayList<>();
EmpQuDaoOneAdmin dEmpQuDaoOneAdmin = new EmpQuDaoOneAdmin();
dEmpQuDaoOneAdmin.setEmpId(1L);
dEmpQuDaoOneAdmin.setEmpName(2L);
dEmpQuDaoOneAdmin.setQudaoOneId(0L);
empQuDaoOneAdmins.add(dEmpQuDaoOneAdmin);
EmpQuDaoOneAdmin dEmpQuDaoOneAdmin2 = new EmpQuDaoOneAdmin();
dEmpQuDaoOneAdmin2.setEmpId(1L);
dEmpQuDaoOneAdmin2.setEmpName(2L);
dEmpQuDaoOneAdmin2.setQudaoOneId(0L);
empQuDaoOneAdmins.add(dEmpQuDaoOneAdmin2);
List<QuDaoOne> quDaoOnes = new ArrayList<>();
QuDaoOne dQuDaoOne = new QuDaoOne();
dQuDaoOne.setId(0L);
dQuDaoOne.setEmps(Lists.newArrayList());
quDaoOnes.add(dQuDaoOne);
// 现根据 id 进行分组
Map<Long, List<EmpQuDaoOneAdmin>> empQuDaoOneAdminListMap = empQuDaoOneAdmins.stream()
.collect(Collectors.groupingBy(EmpQuDaoOneAdmin::getQudaoOneId));
// ----------------------方法一----------------------
quDaoOnes.parallelStream()
.forEach(quDaoOne -> {
List<EmpQuDaoOneAdmin> empQuDaoOneAdminList = empQuDaoOneAdminListMap.getOrDefault(quDaoOne.getId(), new ArrayList<>());
quDaoOne.getEmps()
.addAll(empQuDaoOneAdminList.stream()
.map(quDaoOneAdmin -> {
EmpQuDaoOneAdmin empQuDaoOneAdmin = new EmpQuDaoOneAdmin();
empQuDaoOneAdmin.setEmpId(quDaoOneAdmin.getEmpId());
empQuDaoOneAdmin.setEmpName(quDaoOneAdmin.getEmpName());
return empQuDaoOneAdmin;
}).collect(Collectors.toList())
);
});
System.out.println(quDaoOnes);
// ----------------------方法二----------------------
injection(empQuDaoOneAdmins, EmpQuDaoOneAdmin::getQudaoOneId, quDaoOnes, QuDaoOne::getId,
(empQuDaoOneAdmin, quDaoOne) -> {
EmpQuDaoOneAdmin empQuDaoOneAdmin2 = new EmpQuDaoOneAdmin();
empQuDaoOneAdmin2.setEmpId(empQuDaoOneAdmin.getEmpId());
empQuDaoOneAdmin2.setEmpName(empQuDaoOneAdmin.getEmpName());
quDaoOne.getEmps().add(empQuDaoOneAdmin2);
}
);
System.out.println(quDaoOnes);
}
public static <T, T2, R extends Serializable> void injection(List<T> aList, Function<T, R> mapper, List<T2> bList, Function<T2, R> mapper2, IConvert<T, T2> convert) {
aList.forEach(a -> {
List<T2> collect = bList.stream().filter(b -> Objects.equals(mapper.apply(a), mapper2.apply(b))).collect(Collectors.toList());
for (T2 t2 : collect) {
convert.accept(a, t2);
}
});
}
@FunctionalInterface
interface IConvert<T, T2> {
void accept(T t, T2 t2);
}
@Data
static class EmpQuDaoOneAdmin implements Serializable {
private Long empId;
private Long empName;
private Long qudaoOneId;
}
@Data
static class QuDaoOne implements Serializable {
private Long id;
private List<EmpQuDaoOneAdmin> emps;
}
相关推荐
Unity地形优化实战:LOD、合批与HLOD打造流畅开放世界
在计算机图形学与游戏开发中,渲染优化是保障应用流畅运行的核心技术。其基本原理在于通过算法与策略,在视觉保真度与硬件资源消耗之间寻求最佳平衡,旨在提升帧率、降低功耗。这一技术的核心价值在于,它直接决定了大规模场景(如开放世界游戏)在性能受限平台(尤其是移动设备)上的可行性。具体到地形渲染这一关键应用场景,开发者需要综合运用多层次细节(LOD)技术来动态调整模型精度,并通过Draw Call合批(Batching)与GPU实例化(GPU Instancing)来大幅减少CPU到GPU的通信开销。对于超大规模世界
Java8实现2个list对比生成新的list
Java8实现2个list对比生成新的list
HWSD全球土壤数据下载处理
下载地址: http://www.fao.org/soils-portal/soil-survey/soil-maps-and-databases/harmonized-world-soil-database-v12/en/
java8 list.stream()进行分组,并进行组装数据
List <JSONObject> list = new ArrayList<>(); /*排序 下面 需要满足JDK1.8及以上*/ list.sort(Comparator.comparing(x -> x.getString("region"))); /*返回一个map集合,key代表组名,value代表该组中的数据,做分组*/ Map<String, List<JSONObject>> menuRegionMap = list.strea.
Linux系统下Materials Studio 2020安装避坑指南:从依赖包到许可证配置全流程
本文提供了一份在Linux系统上安装Materials Studio 2020的深度避坑指南。详细解析了从系统依赖包检查、安装流程、许可证配置到Gateway服务部署的全过程,并分享了与Slurm作业调度系统集成的实战经验,旨在帮助用户高效、稳定地完成部署。
ABAP传输自定义IDOC实例
首先确定出站方和入站方,本例中我使用150作为发送方将200作为接收方。 发送端系统配置 进入tcode-SALE,点击定义逻辑系统,这里我定义D01CLNT150为发送端, D01CLNT200为接收端 2,将逻辑系统分配给对应的client 3,进入tcode-WE31,创建IDOC开发段(segment)这里可以按照实际需求创建想要传输的结构,为求简单我创建了ZKNA1并选取了几个客户主数据的字段作为示例 4,进入tcode-WE30,创建Idoc Ty...
java8,两个list对象根据某个相同的字段取交集。
本来用的两个for循环的方式写了出来,但是觉得代码有点多。下面我们可以用java8 提供的stream流的方式来实现,不多说直接上代码。以上就是通过java8实现两个集合根据某个字段获取交集,记录一下。有做的不好的地方欢迎前来指正。
别再手动配IP了!用NI-USRP Configuration Utility快速搞定USRP 2954与LabVIEW连接
本文详细介绍了如何使用NI-USRP Configuration Utility快速配置USRP 2954与LabVIEW的连接,解决传统手动IP配置的繁琐问题。通过图形化工具自动完成设备发现、IP设置和连接验证,大幅提升软件无线电实验效率,特别适合信号收发应用场景。
java流对List中(一个或多个)相同属性的实体合并
【代码】java流对List中(一个或多个)相同属性的实体合并。
蓝牙攻防实战指南:低功耗蓝牙
Bluetooth Low Energy(也称Bluetooth Smart)是经典蓝牙(Bluetooth Classic)的演进版本,设计目标是实现极低功耗,适用于无需频繁更换电池的设备,如智能手环、健康监测器、蓝牙标签等。Bluetooth Low Energy 是一项极具前景的无线通信技术,它以极低的功耗实现了短距离高效通信,广泛应用于智能设备和物联网领域。然而,其简化的协议结构和配对机制也带来了不小的安全挑战。
智能工厂评估模型研究
摘要:通过对国内外现有智能制造评估模型的研究,结合重庆制造业行业领跑者与落后者之间差距大的现状,以实现全要素全连接的数字化工厂为出发点,融合工业互联网标识,构建实践可行的智能工厂评估模型推动中小型企业参与智能制造转型,缓和两极分化问题。本评估模型包含工厂体系架构的3个层级,提供用于推动智能制造转型的参考,包括设计、生产、管理的全过程评估。关键词:智能制造评估模型;智能制造转型;全连接工厂;工业互联网标识0 引言受行业需求与技术创新的影响,全球制造业在历经了工业1.0机械化、工业2.0电气化和工业3.0自动
Java1.8对List集合操作汇总
Java1.8对List集合操作汇总
风控域——知识图谱相关原理
本文全面介绍了知识图谱在风控领域的应用原理。从基础知识入手,阐述了知识图谱的定义、概念及应用场景,重点聚焦于金融风控。进一步讲解了知识图谱的技术架构,涵盖计算、融合与构建等方面。深入探讨了知识表示、建模、抽取、挖掘、存储、融合、检索和推理等关键技术原理,并结合金融风控实际需求,详细说明了各技术环节的具体应用方法与流程,为构建高效风控知识图谱提供了理论与实践指导。
Java8-使用stream实现list中对象属性的合并(去重并求和)
前言 需要对一个List中的对象进行唯一值属性去重,属性求和,对象假设为BillsNums,有id、nums、sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份。例如说:(“s1”, 1, 1),(“s1”,2,3),(“s2”,4,4), 求和并去重的话,就是(“s1”, 3, 4),(“s2”,4,4) 对象与属性 class BillsNums ...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
java8 使用stream实现两个list集合合并成一个list集合及List切成多个list
public class ListDateSpit { private List<String> listData = new ArrayList<>(); @Before public void testInitData() { for (int i = 0; i < 1000; i++) { listData.add(String.format("数据ID-%s", i + 1)); ..
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
Java怎么把多个对象的list的数据合并
然而,对于List的合并,我们可能需要一个确实包含所有元素的新List,而不是一个视图。在Java中,将多个对象的List合并通常涉及到遍历这些List并将它们的元素添加到一个新的List中。返回的是一个新的集合,它包含了所有给定集合的元素的视图,但这些元素并不保证是唯一的(除非原始集合中的元素本身就是唯一的)。这个示例提供了将多个对象的List合并成一个List的详细步骤,并且代码可以直接运行,具有实际的参考价值和意义。最后,我们打印了合并后的List,展示了合并的效果。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
java8 list根据对象属性去重_Java8使用stream实现list中对象属性的合并(去重并求和)...
前言需要对一个list中的对象进行唯一值属性去重,属性求和,对象假设为billsnums,有id、nums、sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份。例如说:(“s1”, 1, 1),(“s1”,2,3),(“s2”,4,4), 求和并去重的话,就是(“s1”, 3, 4),(“s2”,4,4)对象与属性class billsnums {private ...
Java Stream比较两个List的差异,并取出不同的对象
上述代码中,将两个List类型的对象list1和list2转换为Stream类型,并调用filter方法筛选出不同的对象。最后通过collect方法将不同的对象转换为List类型,并输出结果。可以使用Java8的Stream API来比较两个List的差异,并取出不同的对象。2. 调用Stream的filter方法,将不同的对象过滤出来;3. 将过滤出的不同的对象转换为List类型。1. 将两个List转换为Stream类型;
llist对象两个属性相乘在相加_Java8使用stream实现list中对象属性的合并(去重并求和)...
前言需要对一个List中的对象进行唯一值属性去重,属性求和,对象假设为BillsNums,有id、nums、sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份。例如说:(“s1”, 1, 1),(“s1”,2,3),(“s2”,4,4), 求和并去重的话,就是(“s1”, 3, 4),(“s2”,4,4)对象与属性class BillsNums {private ...
java8获取两个list的交集和差集_java8 多个list对象用lambda求差集操作
业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。jat免费资源网调用接口获取的数据集合jat免费资源网List list = response.getData().getItems();jat免费资源网本地查询出来的账户集合jat免费资源网List towList = accountRepository.findAll();jat免费资...
java 合并list中对象_Java List根据对象的某个属性合并list
package com.test;import java.util.ArrayList;import java.util.List;public class FileTest {public static void main(String[] args) {List beans=new ArrayList();FileBean bean1=new FileBean();bean1.setDirec...
java8 两个list取差集_java8 多个list对象用lambda求差集操作
业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。调用接口获取的数据集合List list = response.getData().getItems();本地查询出来的账户集合List towList = accountRepository.findAll();筛选差集代码List distinctByUniqueList = list...
lamda 对比两个list_java8 多个list对象用lambda求差集操作
业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。调用接口获取的数据集合List list = response.getData().getItems();本地查询出来的账户集合List towList = accountRepository.findAll();筛选差集代码List distinctByUniqueList = list...
java8根据组合属性合并对象
java8 合并两个 list<T>, 并将tickeId相同的所有属性合并到一个T中(注意数量不等的时候取前者还是后者),自身list合并。log.info("合并去重后的bo:{}",unique1.size());log.info("合并后的bo:{}",list.size());最总集合中对象的属性:ticketId、ticketName、saleNum、batchAvailableNum。//合并后的两种目录都有的,会有重复,保存的时候taskId ,tileId去重一样。
332



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



