有一个 List< Bean >
Bean 有 key, value1,value2 三个属性
list 的数据 [a,2,3],[b,1,1],[a,1,1],[c,1,1],[b,1,1]
按照 key 进行分组,分组的同时 把 value1 和 value2 求和
最后需要的结果是 [a,3,4] [b,2,2] [c,1,1]
一句 stream api 怎么写呢?
有一个 List< Bean >
Bean 有 key, value1,value2 三个属性
list 的数据 [a,2,3],[b,1,1],[a,1,1],[c,1,1],[b,1,1]
按照 key 进行分组,分组的同时 把 value1 和 value2 求和
最后需要的结果是 [a,3,4] [b,2,2] [c,1,1]
一句 stream api 怎么写呢?
这样算一句吗 😂
list.stream().collect(Collectors.groupingBy(Mainlove::getKey)).forEach((k, v)-> cml.add(new Mainlove(k, v.stream().mapToInt(Mainlove::getV1).sum(), v.stream().mapToInt(Mainlove::getV2).sum())));
执行结果: https://ideone.com/kWbAG7
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Mainlove {
private String key;
private int v1;
private int v2;
public Mainlove(String key, int v1, int v2) {
setKey(key);
setV1(v1);
setV2(v2);
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public int getV1() {
return v1;
}
public void setV1(int v1) {
this.v1 = v1;
}
public int getV2() {
return v2;
}
public void setV2(int v2) {
this.v2 = v2;
}
public String toString() {
return String.format("%s %s %s", getKey(), getV1(), getV2());
}
public static void main(String[] args) {
List<Mainlove> list = new ArrayList<>();
list.add(new Mainlove("a", 2, 3));
list.add(new Mainlove("b", 1, 1));
list.add(new Mainlove("a", 1, 1));
list.add(new Mainlove("c", 1, 1));
list.add(new Mainlove("b", 1, 1));
List<Mainlove> cml = new ArrayList<>();
// 一行处理
list.stream().collect(Collectors.groupingBy(Mainlove::getKey)).forEach((k, v)-> cml.add(new Mainlove(k, v.stream().mapToInt(Mainlove::getV1).sum(), v.stream().mapToInt(Mainlove::getV2).sum())));
cml.forEach(System.out::println);
}
}
Map ret = sumReports.stream().collect(toMap(o -> o.getProjectId(), Function.identity(), (a, b) ->
new SumReport(a.getProjectId(), a.getProjectName(),
a.getServiceId(), a.getServiceName(),
a.getInvokeTime() + b.getInvokeTime(), a.getErrorTime() + b.getErrorTime())));
腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。
发布对别人有帮助的原创内容是最好的 SEO 方式。
App(应用程序,Application 的缩写)一般指手机软件。
FlowUs.息流 个人及团队的新一代生产力工具。
让复杂的信息管理更轻松、自由、充满创意。
这是一个不能说的秘密。
宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”
Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。
小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。
由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!
一些有用的避坑指南。
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。
大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
各种网址链接、内容导航。
Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。
微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。
确认过眼神后的灵魂连接,站在链在!
Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。
阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。
SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。
CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。
你若安好,便是晴天。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于