From c504f5dc2411eefeec4d8d6a0d73931ccd5c4f50 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=A9=AC=E5=BA=9C=E5=BC=BA?=
<8569561+fuqiangma@user.noreply.gitee.com>
Date: Wed, 1 Feb 2023 22:40:34 +0800
Subject: [PATCH] haha
---
mergedemo/.idea/.gitignore | 8 +++
mergedemo/.idea/compiler.xml | 14 +++++
mergedemo/.idea/jarRepositories.xml | 20 +++++++
mergedemo/.idea/misc.xml | 14 +++++
mergedemo/mergedemo.iml | 2 +
mergedemo/pom.xml | 20 +++++++
.../java/com/woniu/mergedemo/MainTest.java | 52 ++++++++++++++++++
.../com/woniu/mergedemo/StudentScore.java | 12 ++++
.../com/woniu/mergedemo/MainTest.class | Bin 0 -> 2927 bytes
.../com/woniu/mergedemo/StudentScore.class | Bin 0 -> 2222 bytes
10 files changed, 142 insertions(+)
create mode 100644 mergedemo/.idea/.gitignore
create mode 100644 mergedemo/.idea/compiler.xml
create mode 100644 mergedemo/.idea/jarRepositories.xml
create mode 100644 mergedemo/.idea/misc.xml
create mode 100644 mergedemo/mergedemo.iml
create mode 100644 mergedemo/pom.xml
create mode 100644 mergedemo/src/main/java/com/woniu/mergedemo/MainTest.java
create mode 100644 mergedemo/src/main/java/com/woniu/mergedemo/StudentScore.java
create mode 100644 mergedemo/target/classes/com/woniu/mergedemo/MainTest.class
create mode 100644 mergedemo/target/classes/com/woniu/mergedemo/StudentScore.class
diff --git a/mergedemo/.idea/.gitignore b/mergedemo/.idea/.gitignore
new file mode 100644
index 0000000..c68e6c2
--- /dev/null
+++ b/mergedemo/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../:\java project\mergedemo\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/mergedemo/.idea/compiler.xml b/mergedemo/.idea/compiler.xml
new file mode 100644
index 0000000..b15642a
--- /dev/null
+++ b/mergedemo/.idea/compiler.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mergedemo/.idea/jarRepositories.xml b/mergedemo/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/mergedemo/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mergedemo/.idea/misc.xml b/mergedemo/.idea/misc.xml
new file mode 100644
index 0000000..4b661a5
--- /dev/null
+++ b/mergedemo/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mergedemo/mergedemo.iml b/mergedemo/mergedemo.iml
new file mode 100644
index 0000000..78b2cc5
--- /dev/null
+++ b/mergedemo/mergedemo.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/mergedemo/pom.xml b/mergedemo/pom.xml
new file mode 100644
index 0000000..93accab
--- /dev/null
+++ b/mergedemo/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+ com.woniu
+ mergedemo
+ 1.0-SNAPSHOT
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.24
+
+
+
+
+
\ No newline at end of file
diff --git a/mergedemo/src/main/java/com/woniu/mergedemo/MainTest.java b/mergedemo/src/main/java/com/woniu/mergedemo/MainTest.java
new file mode 100644
index 0000000..3282b81
--- /dev/null
+++ b/mergedemo/src/main/java/com/woniu/mergedemo/MainTest.java
@@ -0,0 +1,52 @@
+package com.woniu.mergedemo;
+
+
+import java.util.*;
+
+/**
+ * Java 8 中 Map的一个骚操作!好用到爆!!
+ *
+ * 假设我们有这么一段业务逻辑,
+ * 我有一个学生成绩对象的列表,
+ * 对象包含学生姓名、科目、科目分数三个属性,
+ * 要求求得每个学生的总成绩。
+ */
+public class MainTest {
+
+ public static void main(String[] args) {
+ List studentScoreList = Arrays.asList(
+ new StudentScore("张三", "语文", 70),
+ new StudentScore("张三", "数学", 70),
+ new StudentScore("张三", "英语", 65),
+ new StudentScore("李四", "语文", 68),
+ new StudentScore("李四", "数学", 70),
+ new StudentScore("李四", "英语", 90),
+ new StudentScore("王五", "语文", 80),
+ new StudentScore("王五", "数学", 85),
+ new StudentScore("王五", "英语", 70)
+ );
+
+ Map studentScoreMap = new HashMap<>();
+ studentScoreList.forEach(studentScore -> {
+ if (studentScoreMap.containsKey(studentScore.getStuName())) {
+ studentScoreMap.put(studentScore.getStuName(), studentScoreMap.get(studentScore.getStuName()) + studentScore.getScore());
+ } else {
+ studentScoreMap.put(studentScore.getStuName(), studentScore.getScore());
+ }
+ });
+
+
+ Map studentScoreMap2 = new HashMap<>();
+
+ studentScoreList.forEach(studentScore -> studentScoreMap2.merge(
+ studentScore.getStuName(),
+ studentScore.getScore(),
+ (oldValue, newValue) -> oldValue + newValue));
+ //merge() 方法会先判断指定的 key 是否存在,如果不存在,则添加键值对到 hashMap 中。
+
+
+ }
+
+
+
+}
diff --git a/mergedemo/src/main/java/com/woniu/mergedemo/StudentScore.java b/mergedemo/src/main/java/com/woniu/mergedemo/StudentScore.java
new file mode 100644
index 0000000..72ec939
--- /dev/null
+++ b/mergedemo/src/main/java/com/woniu/mergedemo/StudentScore.java
@@ -0,0 +1,12 @@
+package com.woniu.mergedemo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class StudentScore {
+ private String stuName;
+ private String subject;
+ private int score;
+}
diff --git a/mergedemo/target/classes/com/woniu/mergedemo/MainTest.class b/mergedemo/target/classes/com/woniu/mergedemo/MainTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..b88d43146a280a1cd2d121f1e8da2293d41257fa
GIT binary patch
literal 2927
zcma)8+jA3T6#somn@!U#-3D5&V!?t*3k^2`O+`zgG?ErHrM2LNubXYUG}(>2n_|7+
z5mCkmb;dzwd|>p65niAab$rkl$3Fwmzryi+yBo5R06uj0J7>@3cYf!buleJjrC$K-
z!uc51VvmHqQ9K^S6ETF4j$$B+C!^RG#ZxgnjX??fV`#;mIJu0pB7Fg`S@9T+
zp%Y_qIz88l9L6Oa6YmM}m=xch7pEx+$0eL#hz#h4?(Aa-Cz2BkO+#j0V`$InhBj6y
zO>5RTpDvOno;6iooZyx&WMA3j%<4A7`mAb}Qm0KrucS(vRnYQU$xMxM-5A$wCrwdH
zbY|#EoXDQy^E_4LMj@4REZr!i-K^XyP@LrrJ~Jq`Q^{+FlT%Gg%j&j6DlbgM(Tgde
zp%m>wt5IGSHMqH4BT|q}T_jTNAV~FPEtIRJ?Fx8{6ax)w%mtvO_fd-70XNDp;EBO{
z1DcHCXa&u39ove$G@a)?f~lVE47(EbkTM+F9Inn0dcVuD
zoLR9{ZCDp`&{l10zhGC!Iy}VC-KhUTZfMSK{q)_<#j|wy`^QVSzd9p4Um)rBmzQr{
z`d+BdU7;^R^X>Ut7cS7@uk+__E`1^4MHw&QWrmJgKS#JdO8}{*`%Tla9gCMoHD}h$
z+wBpYRKV#qtw5ELhbCc0Mgg;=(`B5(oQxt$G7Ojs%A|cofhEI+BcUQ=9;d6h+`jo;
zlJP1QWW0vgWxOHW-vs4f*QoL;MFg)l?nkCiX)4Wb!f)(7X2Rc!jA*9k?GEsuW$^`C
zkqEcF71&g_OJ4AFGB7jlUc~Sg-e%|w=B(OI#IOeMFl<52+#LmXjM(a
zq3gtP#eBGjyD&Ce|4?H$c%aXjC_x3DFkvELUjb-k0$KK9;c)+hnA~<19X*o2#}t
zx-oCgX{oGxLDHJ@8Lm2}MVMMkHA%v!G^1J5oU71Y${EAZtf3;eZH?CE&mcTMo_Ar4
za3f#T>>kfC9bnGi#DJ#Gah(2F1kL~dM=$05eS_Tjk%xG(nA07NW+6a>SRLeOXcl-R}`s
zj*|TWSC)LaY9IAwNjdI*S3HLnayaTKJdc)mL^SE0~f$0FiO
zST10$Xu_}PoUHXJ?n3D%hYbXJBRVKqH#v8CAzTn7QtP*42N)%yZS)g;?k5^{6J1AF
z2wx-V3chA#NTj=pRRYCHf^i+I!j{1E5x5msY}WI^Kr`a4LThy2rF|8xXL@$A3G`vyY*
literal 0
HcmV?d00001
diff --git a/mergedemo/target/classes/com/woniu/mergedemo/StudentScore.class b/mergedemo/target/classes/com/woniu/mergedemo/StudentScore.class
new file mode 100644
index 0000000000000000000000000000000000000000..bc37952aa962f5b47bbd0ae416cbfcdd74f23296
GIT binary patch
literal 2222
zcma)6+in|G6kW%j@r<2Go0wec)`heL@Fi|27z%b0Xq%L#Bx$KbpcO)$IHSbHmtcF~
zUwGk-yyO8S;z}SPcqtMe!dFnr+B0K2aV$~EK45kE0;U-pvttr^%&0B@wLbHH}-thuJ6v5+RaLRw|7QE9k9qqe(Zlsu0_C+NEyXL@GTjQoGsM
zq5IjjO5NFTYuiq9)84Ln=QPT8b<1v6L=Qe{?Y&A%;qqF!QJep^QLni3HK)1j>^QXs
z(YQNKydS-jvj(VT_dSLD%=$d>oq1o6>AI{HD@#p;E83mlRS%*g4IY$4IQy
zaGPc4Rz*5Ee!L-9WNIu-VcNnuSrRy}F!O(XwD2yn7GA}yg$qbp$cTDbq-&T}m>wL)
z8*Zh#<1{TS;!`%}ID}Nd^P+_;EXk`5};T+jG9TbH)5fTY4${{+8%3Y;M6
zzP-Qi)OQqeL-;v8>j5whW|Gr$iodQImv})Zd85M!30ssxLYTLcGwvf$!Uflh)aJP>
z?t12Ds2@GIm$^o~k5Rlr+43DQ!{ne$`nV1ThX#XVLxb6hA;ICpfs;pu2ET^agWv+o
z3JK0k_6X{yf#`@AJ>`1@xTPi`M9O_*c%IOU<`F_APYP+S!bBg>g(HMtG>