首页
学习
活动
专区
圈层
工具
发布

根据分组依据对Java集合元素进行分组

业务背景:在项目中有个“分账”功能,就是支付的钱一部分要根据不同商品的分账金额自动分给平台提供商。 有以下业务模型: 商户号:提供给每个商家的一种凭证号码。 分销商:平台上的卖家。...:100 也就是,每个订单要分解成一个主商户号(平台提供商),若干个子商户号(卖家),而且每个字商户号只能出现一次,但分解后通常会出现一个订单中会有同一个商户号的若干商品,所以,必须要对分解出来的数据进行分组统计...下面贴出模拟过程的完整代码,由于是模拟,所以部分地方数据直接自己构造进去了: /** * 模拟中国电信翼支付的分账功能接口调用的参数字符串 * 根据分组依据对集合进行分组 * @author ZhangBing...*/ public class CollectionGroupTest { /*** * 分组依据接口,用于集合分组时,获取分组依据 * @author ZhangBing...setFxMoney(item.getFxSplitMoney()).setItemValue(item.getItemValue())) ; } //对得到的集合进行分组

4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何对不同行,同列名进行多维转一维?

    之前的案例都是列数及行数相同,那如果是不同的情况下,该如何处理呢? 原表: ? 目标表: ? 此时我们可以通过另外一个分组函数来进行处理。...第二个必填参数:是根据哪列数据进行分组,可以为文本格式及列表格式。参数必须要填写,但是可以是空列表{},只有在不需要值来计算时可以使用。同时如果是列表格式,则第4参数默认为全局分组。...第四个可选参数:1=全局分组;0=局部分组(分组到下一条不等值为止) 第五个可选参数:目前所知是有2个参数组成的函数(x,y)其中X为每次分组后的第一行;Y为X当前行及下面的每一行。...这里留个疑问,因为目前来看,列名都是一一对应的,如果列名不一致的话,如何进行处理呢?可以先行试着操作下。 原表: ? 目标表: ?...如果用之前的方式,我们不能把相同项目归类在一起,得到的错误结果是这样的。 ? 如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。

    1.7K10

    如何对矩阵中的所有值进行比较?

    如何对矩阵中的所有值进行比较? (一) 分析需求 需求相对比较明确,就是在矩阵中显示的值,需要进行整体比较,而不是单个字段值直接进行的比较。如图1所示,确认矩阵中最大值或者最小值。 ?...(二) 实现需求 要实现这一步需要分析在矩阵或者透视表的情况下,如何对整体数据进行比对,实际上也就是忽略矩阵的所有维度进行比对。上面这个矩阵的维度有品牌Brand以及洲Continent。...只需要在计算比较值的时候对维度进行忽略即可。如果所有字段在单一的表格中,那相对比较好办,只需要在计算金额的时候忽略表中的维度即可。 ? 如果维度在不同表中,那建议构建一个有维度组成的表并进行计算。...,如果未使用真实表的话,则需要添加all来进行忽略维度进行计算,如果是实际表则可以直接求最大和最小值。...把忽略的2个维度使用AllSelect()来进行替换即可,最后得到符合需求的样式。条件格式可以直接在设置表里根据判断条件1或者2来进行设置,如图4所示。 ? 最终显示的才是正确的结果,如图5所示。 ?

    14.6K20

    如何对第三方相同请求进行筛选过滤

    还有一种情况是:第三方系统中添加或者 删除一个用户时,会以两个客户的身份去发送两个相同的用户同步请求,但同一个用户在我们系统内用户数据只有一份,对应的接口肯定也都是同一个,即相同的添加接口会在一瞬间被调用两次...处理思路根据userId(账号)为每个请求分配一个房间(单独的线程),如果是第一次进来那么就new一个房间(也就是类,里边会有一个单独的线程处理这个用户的行为),后边一定时间内相同的 userId 进来会找到对应已存在的房间...最后:采取的是根据最近一个的userId请求的时间 等待1500ms,即相同的userId的请求进来后 在当前时间再重新计算等待1500ms,时间到了之后没有发现新的用户行为即算是一个批次结束ps:可以创建一个单独的服务来负责对请求进行合理的处理分发...= count.get()){ //每休眠一次 +1,如果下次循环的值与 +1之后的afterCount相等,说明时间窗口内没有新的行为,则不循环...如果涉及到批量导入,同时有大量用户同步数据过来,就需要在测试环境进行反复测试 看是否会丢数据(因为每个用户都是一个独立的子线程),对线程的数量进行优化。

    73010

    TCGA数据库| 如何根据单个基因的表达对样本分组绘制KM生存曲线?

    关于TCGA数据库,我们介绍了: 样本barcode的详细组成:TCGA样本barcode详细介绍 TCGA数据库| 如何将表达矩阵与样本临床数据进行合并? 今天来看看单个基因的生存分析。...pwd=y2v8) 05期数据集TCGA数据库:临床信息预处理,目标基因表达高低分组KM生存曲线绘制,目标基因在不同病理stage中表达比较~~(02-Human-8-NSCLC-Trans-TCGA-...pwd=swab) 读取表达矩阵 读取整理好的表达矩阵进来:tcga_mrna_fpkm_symbol.rds 这里使用R包 TCGAbiolinks 去TCGA官网下载数据,参考:TCGA数据库| 如何将表达矩阵与样本临床数据进行合并...as.data.frame(exp[, str_sub(colnames(exp),14,16)=="01A"]) head(colnames(exp_tumor)) head(clinical) # 修改表达矩阵的列名为...fit, data = data,                  pval.method = T,                 pval = TRUE,    # 添加log rank检验的p值

    1K10

    如何使用Java8 Stream API对Map按键或值进行排序

    在这篇文章中,您将学习如何使用Java对Map进行排序。前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题。所以我决定写这样一篇文章。...使用Streams的sorted()方法对其进行排序 3....最终将其返回为LinkedHashMap(可以保留排序顺序) sorted()方法以aComparator作为参数,从而可以按任何类型的值对Map进行排序。...这个函数有三个参数: * 参数一:向map里面put的键 * 参数二:向map里面put的值 * 参数三:如果键发生重复,如何处理值。...四、按Map的值排序 当然,您也可以使用Stream API按其值对Map进行排序: Map sortedMap2 = codes.entrySet().stream(

    10.7K30

    pandas技巧6

    本篇博文主要是对之前的几篇关于pandas使用技巧的小结,内容包含: 创建S型或者DF型数据,以及如何查看数据 选择特定的数据 缺失值处理 apply使用 合并和连接 分组groupby机制 重塑reshaping...,默认是相同的列名 left_on \right_on 左侧、右侧DF中用作连接键的列 sort 根据连接键对合并后的数据进行排序,默认是T suffixes 重复列名,直接指定后缀,用元组的形式(’_...column分组,得到的是一个分组之后的对象 应用:对上面的对象使用某个函数,可以是自带的也可以是自己写的函数,通过apply(function) 合并:最终结果是个S型数据 如何找出每一种职业的平均年龄...,再对年龄求均值 df['age'].groupby(df['occupation']).mean() 避免层次化索引 分组和聚合之后使用reset_index() 在分组时,使用as_index...If an array is passed, it is being used as the same manner as column values,聚合值的分组,相当于“行” columns: a

    3.8K10
    领券