lambda表達式最實用的例子,最實用的案例

lambda最實用的例子(巨實用,能用到我們基本所有的方法的案例)

1.首先準備一個文件txt的。

1	阿會喃	雲南	男	190	225	74
2	伊籍	江陵	男	162	226	24
3	尹賞	天水	男	194	260	44
4	尹默	梓潼	男	183	239	15
5	于禁	陳留	男	159	221	78
6	衛瓘	晉陽	男	220	291	46
7	袁胤	汝南	男	163	199	14
8	袁熙	汝南	男	176	207	51
9	閻行	長安	男	159	222	84
10	閻柔	北平	男	168	227	57
11	袁術	宛	男	155	199	65
12	袁尚	汝南	男	179	207	75
13	袁紹	南皮	男	154	202	69
14	閻象	宛	男	158	199	27
15	袁譚	汝南	男	173	205	69
16	閻圃	漢中	男	163	231	25
17	王威	襄陽	男	163	208	70
18	王允	洛陽	男	137	192	6
19	王伉	成都	男	184	254	60
20	王粲	鄴	男	177	217	3
21	王修	北海	男	168	218	27
22	王肅	下邳	男	195	256	22
23	王浚	洛陽	男	206	285	73
24	王雙	天水	男	195	228	88
25	王昶	晉陽	男	188	259	64
26	王平	梓潼	男	192	248	79
27	王甫	江州	男	171	219	41
28	王門	北平	男	162	205	64
29	王凌	南皮	男	172	251	64
30	王累	成都	男	173	211	30
31	王朗	洛陽	男	162	228	35
32	溫恢	壽春	男	178	222	36
33	何晏	許昌	男	190	249	30
34	蒯越	襄陽	男	157	214	27
35	蒯良	襄陽	男	155	204	33
36	賈華	廬江	男	176	224	65
37	賈逵	洛陽	男	177	231	61
38	何儀	許昌	男	161	195	69
39	華歆	鄴	男	157	231	33
40	賈詡	洛陽	男	147	223	48
41	郭嘉	南皮	男	170	207	15
42	鄂煥	江州	男	196	251	82
43	郭汜	洛陽	男	146	197	76
44	樂就	宛	男	157	195	66
45	霍峻	武陵	男	178	217	66
46	郝昭	鄴	男	185	229	79
47	樂進	陳留	男	159	218	84
48	郭圖	許昌	男	155	205	50
49	郝萌	晉陽	男	156	197	67
50	郭攸之	宛	男	190	259	9
51	霍弋	江陵	男	207	270	69
52	郭淮	平原	男	187	255	78
53	夏侯威	陳留	男	204	253	73
54	夏侯淵	濮陽	男	162	219	91
55	夏侯恩	陳留	男	180	208	72
56	夏侯和	陳留	男	207	265	51
57	夏侯恵	陳留	男	206	242	44
58	夏侯玄	陳留	男	208	254	39
59	夏侯尚	新野	男	181	225	72
60	夏侯德	新野	男	178	218	73
61	夏侯惇	陳留	男	156	220	90
62	夏侯霸	陳留	男	202	262	84
63	夏侯楙	陳留	男	201	259	7
64	賈充	洛陽	男	217	282	31
65	何進	洛陽	男	135	189	40
66	華雄	洛陽	男	155	190	92
67	韓胤	宛	男	155	197	29
68	關羽	江夏	男	162	219	97
69	桓階	鄴	男	156	221	26
70	管亥	小沛	男	160	193	82
71	毌丘儉	鄴	男	202	255	74
72	韓玄	洛陽	男	163	208	33
73	韓浩	許昌	男	164	218	72
74	關興	江夏	男	199	234	86
75	關索	江夏	男	200	239	88
76	韓遂	長安	男	142	215	75
77	韓嵩	襄陽	男	154	210	15
78	關靖	北平	男	158	199	52
79	韓暹	南皮	男	159	196	66
80	闞澤	柴桑	男	182	243	49
81	韓忠	濮陽	男	151	184	67
82	韓當	柴桑	男	156	225	85
83	韓德	雲南	男	171	228	76
84	甘寧	建業	男	174	222	94
85	韓馥	鄴	男	149	193	3
86	關平	江夏	男	186	219	82
87	簡雍	江陵	男	164	225	32
88	顏良	南皮	男	160	200	94
89	魏延	長沙	男	175	234	92
90	麴義	北平	男	146	191	78
91	戲志才	許昌	男	157	194	7
92	魏續	晉陽	男	156	200	78
93	魏攸	北平	男	151	193	29
94	牛金	襄陽	男	173	226	79
95	牛輔	天水	男	159	192	60
96	姜維	天水	男	202	264	89
97	鞏志	武陵	男	178	242	53
98	橋蕤	洛陽	男	143	195	69
99	龔都	宛	男	164	200	70
100	許貢	吳	男	155	200	66
101	許靖	成都	男	152	222	5
102	許褚	北海	男	169	226	96
103	許攸	宛	男	155	204	21
104	紀靈	宛	男	155	199	83
105	金禕	許昌	男	177	218	38
106	金環三結	雲南	男	192	225	76
107	金旋	長安	男	155	208	68
108	虞翻	會稽	男	164	233	46
109	邢道榮	零陵	男	174	208	80
110	嚴顏	江州	男	151	222	83
111	嚴綱	北平	男	163	192	71
112	嚴畯	會稽	男	169	246	2
113	嚴政	許昌	男	151	189	55
114	嚴白虎	吳	男	142	196	70
115	嚴興	吳	男	145	196	78
116	吳懿	成都	男	165	237	73
117	黃蓋	柴桑	男	154	218	83
118	高幹	陳留	男	168	206	56
119	黃權	成都	男	167	240	59
120	高柔	鄴	男	174	263	43
121	高順	晉陽	男	162	198	86
122	高翔	梓潼	男	194	252	68
123	高升	許昌	男	145	184	73
124	侯成	晉陽	男	158	199	75
125	侯選	雲南	男	175	228	66
126	黃祖	江夏	男	148	208	66
127	公孫越	北平	男	160	192	72
128	公孫淵	襄平	男	205	238	70
129	公孫恭	襄平	男	174	238	17
130	公孫康	襄平	男	172	210	66
131	公孫瓚	北平	男	152	199	83
132	公孫續	北平	男	176	199	68
133	公孫度	襄平	男	154	204	71
134	公孫範	北平	男	158	199	69
135	黃忠	長沙	男	148	222	93
136	高定	江州	男	190	251	63
137	高沛	梓潼	男	170	212	61
138	皇甫嵩	陳留	男	132	195	61
139	孔融	北海	男	153	208	5
140	高覽	南皮	男	159	201	82
141	吳景	下邳	男	159	203	66
142	胡車兒	天水	男	164	206	82
143	胡軫	天水	男	146	190	74
144	兀突骨	雲南	男	186	225	86
145	胡班	江夏	男	179	233	55
146	吳班	成都	男	171	234	71
147	顧雍	吳	男	168	243	18
148	吳蘭	梓潼	男	170	218	80
149	蔡和	襄陽	男	166	208	50
150	蔡中	襄陽	男	168	208	54
151	蔡瑁	襄陽	男	160	208	70
152	笮融	下邳	男	161	195	69
153	司馬懿	陳留	男	179	251	63
154	司馬炎	洛陽	男	236	290	59
155	司馬師	洛陽	男	208	255	64
156	司馬昭	洛陽	男	211	265	57
157	司馬孚	陳留	男	180	272	37
158	司馬朗	陳留	男	171	217	21
159	沙摩柯	武陵	男	167	222	84
160	周昕	會稽	男	159	196	62
161	周昂	會稽	男	162	195	65
162	周旨	襄陽	男	233	295	85
163	周倉	江夏	男	164	219	84
164	周泰	廬江	男	171	225	91
165	周魴	廬江	男	200	240	41
166	周瑜	廬江	男	175	210	71
167	朱桓	建業	男	177	238	82
168	朱據	建業	男	190	246	57
169	祝融	雲南	女	193	246	85
170	朱儁	洛陽	男	149	195	65
171	朱然	廬江	男	182	249	69
172	朱治	吳	男	156	224	56
173	朱褒	江州	男	191	225	73
174	朱靈	汝南	男	170	236	73
175	荀彧	南皮	男	163	212	14
176	淳于瓊	洛陽	男	146	200	66
177	荀諶	許昌	男	164	208	25
178	荀攸	洛陽	男	157	214	26
179	蔣琬	零陵	男	188	246	34
180	鍾會	許昌	男	225	264	51
181	蔣幹	汝南	男	175	239	6
182	蔣義渠	薊	男	159	205	58
183	蔣欽	廬江	男	168	219	84
184	蔣濟	壽春	男	188	249	43
185	譙周	成都	男	201	270	3
186	焦觸		男	159	208	76
187	向寵	襄陽	男	195	240	61
188	鍾繇	洛陽	男	151	230	24
189	向朗	武陵	男	167	247	18
190	徐榮	長安	男	147	190	76
191	諸葛恪	吳	男	203	253	47
192	諸葛瑾	建業	男	174	241	34
193	諸葛均	桂陽	男	185	252	25
194	諸葛誕	下邳	男	206	258	72
195	諸葛亮	江陵	男	181	234	38
196	徐晃	晉陽	男	165	228	90
197	徐庶	鄴	男	178	232	64
198	徐盛	廬江	男	177	234	81
199	徐邈	薊	男	171	249	32
200	申儀	上庸	男	190	252	59
201	申耽	上庸	男	188	254	62
202	審配	鄴	男	156	204	60
203	辛毗	鄴	男	171	240	24
204	辛評	許昌	男	165	204	43
205	秦宓	成都	男	160	226	7
206	秦朗	晉陽	男	192	234	70
207	眭固	濮陽	男	151	199	71
208	鄒丹	北平	男	148	195	64
209	成宜	長安	男	168	211	72
210	成公英	長安	男	172	220	71
211	薛綜	會稽	男	187	243	16
212	單經	北平	男	156	199	68
213	全琮	建業	男	183	249	72
214	曹叡	鄴	男	205	239	52
215	曹休	濮陽	男	174	228	75
216	宋憲	晉陽	男	157	200	77
217	曹昂	陳留	男	175	197	67
218	曹洪	濮陽	男	169	232	81
219	曹純	濮陽	男	170	210	71
220	曹彰	北平	男	190	223	90
221	曹植	下邳	男	192	232	22
222	曹真	下邳	男	185	231	74
223	曹仁	濮陽	男	168	223	86
224	曹性	晉陽	男	163	198	74
225	曹操	陳留	男	155	220	72
226	曹衝	陳留	男	196	208	21
227	臧霸	壽春	男	165	231	75
228	曹丕	鄴	男	187	226	71
229	曹豹	下邳	男	151	196	69
230	沮授	鄴	男	156	201	35
231	蘇飛	柴桑	男	172	221	63
232	祖茂	下邳	男	155	190	71
233	孫桓	建業	男	197	228	73
234	孫堅	長沙	男	156	192	90
235	孫乾	江陵	男	165	215	33
236	孫權	建業	男	182	252	67
237	孫皎	柴桑	男	181	219	72
238	孫策	吳	男	175	200	92
239	孫韶	建業	男	188	241	79
240	孫靜	下邳	男	160	206	53
241	孫仲	濮陽	男	154	184	71
242	孫登	建業	男	209	241	37
243	孫瑜	柴桑	男	177	215	70
244	孫翊	吳	男	184	204	78
245	孫禮	南皮	男	180	250	81
246	太史慈	北海	男	166	209	93
247	帶來洞主	雲南	男	195	249	53
248	戴陵	雲南	男	199	258	75
249	朵思大王	雲南	男	186	225	59
250	譚雄	武陵	男	188	221	73
251	張允	襄陽	男	163	208	67
252	趙雲	江陵	男	168	229	96
253	張衛	漢中	男	172	215	66
254	張英	建業	男	154	195	74
255	張燕	濮陽	男	153	210	81
256	張橫	天水	男	178	211	70
257	張溫	建業	男	193	231	10
258	張闓	小沛	男	155	202	66
259	張角	平原	男	140	184	25
260	張既	洛陽	男	170	223	35
261	張嶷	成都	男	190	254	72
262	張勳	宛	男	156	206	68
263	張紘	建業	男	153	212	22
264	張郃	宛	男	167	231	89
265	趙弘	濮陽	男	156	184	72
266	張濟	天水	男	144	196	66
267	張繡	天水	男	154	207	73
268	張昭	建業	男	156	236	3
269	張松	成都	男	170	212	6
270	張任	成都	男	169	214	84
271	張悌	襄陽	男	236	280	43
272	張邈	濮陽	男	155	195	53
273	趙範	桂陽	男	168	218	21
274	張飛	江陵	男	167	221	98
275	張苞	江陵	男	198	229	87
276	張寶	濮陽	男	148	184	71
277	張曼成	宛	男	143	184	81
278	張楊	晉陽	男	151	195	70
279	張翼	成都	男	188	264	74
280	張遼	洛陽	男	169	222	92
281	張梁	許昌	男	153	184	80
282	趙累	江陵	男	183	219	43
283	張魯	漢中	男	163	237	26
284	陳橫	建業	男	161	195	63
285	陳應	桂陽	男	172	208	72
286	陳紀	柴桑	男	165	198	65
287	陳宮	陳留	男	154	198	55
288	陳矯	小沛	男	175	237	27
289	陳羣	陳留	男	167	235	14
290	陳珪	下邳	男	132	206	4
291	陳式	成都	男	191	230	71
292	陳震	零陵	男	170	235	46
293	陳泰	許昌	男	210	260	77
294	陳登	下邳	男	169	207	64
295	陳到	武陵	男	171	237	71
296	陳武	廬江	男	176	215	87
297	陳蘭	汝南	男	157	204	69
298	陳琳	鄴	男	160	217	9
299	程昱	濮陽	男	141	220	49
300	程遠志	南皮	男	145	184	74
301	程銀	長安	男	169	211	73
302	丁原	晉陽	男	137	190	76
303	程普	柴桑	男	151	216	79
304	丁奉	廬江	男	190	271	80
305	典韋	陳留	男	160	197	95
306	田楷	北平	男	154	199	65
307	田疇	薊	男	169	214	66
308	田豐	鄴	男	162	200	29
309	田豫	北平	男	171	252	72
310	董允	江州	男	192	246	28
311	董和	江州	男	168	219	34
312	鄧艾	新野	男	197	264	87
313	陶謙	小沛	男	132	194	27
314	鄧賢	成都	男	188	248	73
315	鄧芝	梓潼	男	182	251	52
316	董襲	廬江	男	169	215	85
317	董承	鄴	男	154	200	53
318	董昭	許昌	男	156	236	25
319	董卓	洛陽	男	139	192	87
320	董荼那	雲南	男	189	225	73
321	董旻	天水	男	149	192	60
322	鄧茂	南皮	男	147	184	75
323	杜畿	洛陽	男	163	224	32
324	杜預	長安	男	222	284	30
325	裴元紹	平原	男	169	200	65
326	馬玩	長安	男	170	211	74
327	馬休	西涼	男	178	211	73
328	波才	許昌	男	145	184	74
329	馬遵	天水	男	196	260	52
330	馬謖	江陵	男	190	228	67
331	馬岱	長安	男	183	246	85
332	馬忠	梓潼	男	187	249	72
333	馬超	長安	男	176	226	97
334	馬鐵	西涼	男	179	211	62
335	馬騰	西涼	男	149	211	80
336	馬良	江夏	男	187	222	23
337	潘浚	武陵	男	174	239	18
338	潘璋	廬江	男	177	222	80
339	樊稠	天水	男	149	192	73
340	樊能	會稽	男	158	195	61
341	潘鳳	鄴	男	155	190	77
342	費禕	江州	男	193	253	30
343	卑衍	襄平	男	196	238	66
344	費詩	成都	男	176	240	28
345	糜竺	桂陽	男	165	220	29
346	糜芳	長沙	男	169	222	61
347	費耀	天水	男	192	228	66
348	武安國	北海	男	156	190	83
349	馮習	江陵	男	182	222	71
350	傅士仁	長沙	男	182	222	63
351	傅僉	新野	男	216	263	85
352	傅巽	襄陽	男	162	230	13
353	文鴦	陳留	男	222	285	91
354	文欽	陳留	男	200	258	83
355	文丑	南皮	男	161	200	93
356	文聘	襄陽	男	178	237	82
357	卞喜	小沛	男	169	200	70
358	忙牙長	雲南	男	191	225	79
359	逢紀	南皮	男	153	202	21
360	龐義	梓潼	男	153	218	38
361	法正	江州	男	176	220	47
362	龐統	江陵	男	178	213	34
363	龐德	長安	男	170	219	94
364	鮑隆	桂陽	男	174	208	76
365	穆順	晉陽	男	157	190	77
366	木鹿大王	雲南	男	184	225	71
367	步騭	柴桑	男	177	247	51
368	滿寵	濮陽	男	170	242	64
369	毛玠	濮陽	男	161	216	39
370	孟獲	雲南	男	186	245	87
371	孟達	江州	男	172	228	73
372	孟優	雲南	男	190	251	68
373	俞涉	宛	男	158	190	79
374	楊懷	梓潼	男	167	212	68
375	雍闓	江州	男	188	225	75
376	楊儀	零陵	男	190	235	40
377	羊祜	濮陽	男	221	278	64
378	楊弘	宛	男	152	199	15
379	楊昂	漢中	男	172	215	72
380	楊醜	晉陽	男	159	199	65
381	楊修	下邳	男	175	219	4
382	楊秋	西涼	男	172	238	64
383	楊松	漢中	男	167	215	5
384	楊任	漢中	男	170	215	78
385	楊祚	襄平	男	202	256	61
386	楊柏	漢中	男	171	214	45
387	楊阜	天水	男	178	239	50
388	楊奉	洛陽	男	153	197	65
389	楊鋒	雲南	男	191	252	62
390	雷銅	梓潼	男	172	218	78
391	雷薄	汝南	男	157	206	70
392	李異	柴桑	男	187	222	77
393	李恢	江州	男	175	231	65
394	李傕	長安	男	148	198	72
395	陸抗	吳	男	226	274	63
396	陸績	會稽	男	187	219	7
397	陸遜	建業	男	183	245	69
398	李嚴	成都	男	172	234	84
399	李儒	洛陽	男	150	192	26
400	李肅	晉陽	男	156	192	69
401	李通	許昌	男	168	211	81
402	李典	許昌	男	174	216	77
403	李豐	濮陽	男	158	199	74
404	劉焉	成都	男	132	194	38
405	劉璝	成都	男	165	214	73
406	劉琦	濮陽	男	174	210	12
407	劉虞	薊	男	145	193	33
408	劉勳	下邳	男	163	216	63
409	劉賢	零陵	男	188	252	66
410	劉循	成都	男	184	239	46
411	劉璋	成都	男	162	219	5
412	劉諶	江陵	男	238	263	62
413	劉禪	江陵	男	207	271	5
414	劉琮	濮陽	男	195	208	22
415	劉度	零陵	男	168	214	23
416	劉巴	零陵	男	186	222	22
417	劉蚣	長沙	男	168	210	76
418	劉備	平原	男	161	223	77
419	劉表	襄陽	男	142	208	31
420	劉馥	下邳	男	164	208	49
421	劉闢	宛	男	145	201	72
422	劉封	江陵	男	188	220	79
423	劉曄	許昌	男	176	235	32
424	劉繇	壽春	男	156	198	67
425	呂威璜	南皮	男	159	200	63
426	廖化	江夏	男	170	264	76
427	梁興	雲南	男	169	211	65
428	梁習	壽春	男	168	230	40
429	梁緒	天水	男	198	260	62
430	凌操	吳	男	165	203	81
431	淩統	廬江	男	189	237	89
432	呂凱	雲南	男	194	227	30
433	呂虔	濮陽	男	173	238	70
434	呂曠	鄴	男	162	207	70
435	呂翔	鄴	男	164	207	71
436	呂岱	會稽	男	161	256	71
437	呂範	建業	男	169	228	63
438	呂布	洛陽	男	156	198	100
439	呂蒙	廬江	男	178	219	81
440	倫直	襄平	男	196	237	42
441	冷苞	成都	男	176	214	82
442	婁圭	洛陽	男	143	212	13
443	魯肅	柴桑	男	172	217	56
444	盧植	鄴	男	139	192	63
801	王異	天水	女	171	230	51
802	王元姬	下邳	女	217	268	37
803	郭氏	平原	女	184	235	4
804	夏侯氏	陳留	女	188	243	13
805	夏侯令女	陳留	女	207	257	53
806	何氏	洛陽	女	150	189	34
807	關銀屏	江夏	女	204	271	78
808	甘氏	小沛	女	175	210	3
809	黃月英	江陵	女	186	235	31
810	蔡琰	洛陽	女	168	224	11
811	蔡氏	襄陽	女	159	208	7
812	小喬	建業	女	178	210	12
813	徐氏	建業	女	183	232	16
814	辛憲英	鄴	女	191	269	28
815	甄氏	鄴	女	182	221	4
816	鄒氏	天水	女	165	197	6
817	曹節		女	190	260	2
818	孫氏	建業	女	188	250	22
819	孫尚香	江陵	女	193	222	86
820	孫魯育		女	204	250	8
821	孫魯班	建業	女	202	250	58
822	大喬	建業	女	177	210	11
823	張氏		女	207	237	61
824	張春華	陳留	女	189	234	49
825	貂蟬	洛陽	女	176	198	26
826	樊氏	桂陽	女	176	215	22
827	糜氏	下邳	女	176	208	6
828	卞氏	許昌	女	160	230	24
829	步練師		女	185	238	10
830	劉氏	洛陽	女	164	205	8

2.創建一個Hero的對象類

// 還有get和set方法,生成一下
public class Hero {
    private int id;
    private String name;
    private String loc; // location
    private String sex;
    private int bir;   //  生於
    private int death;  // 卒於
    private int power; // 武力值
    private int age;

    public Hero(int id, String name, String loc, String sex, int bir, int death, int power) {
        this.id = id;
        this.name = name;
        this.loc = loc;
        this.sex = sex;
        this.bir = bir;
        this.death = death;
        this.power = power;
        this.age = death - bir;
    }
    
    public String ageRange(){
        if(age > 0 && age <= 20){
            return "0~20";
        }else if (age >= 21 && age <= 40){
            return "21~40";
        }else if(age >= 41 && age <= 60){
            return "41~60";
        }else{
            return "60以上";
        }
}

3.編寫測試類

public class LambdaHero {
    public static void main(String[] args) throws IOException {
        // 1.讀取文件,將文件中的數據放在Hero對象中
        List<Hero> listHero= Files.lines(Paths.get("heroes.txt")).map(line ->{
            String[] split = line.split("\t");
            return new Hero(
                    // id  name  loc  bir  death  power  age
                    Integer.parseInt(split[0]),
                    split[1],
                    split[2],
                    split[3],
                    Integer.parseInt(split[4]),
                    Integer.parseInt(split[5]),
                    Integer.parseInt(split[6])
            );
        }).collect(Collectors.toList());

        //找出武力值前三的人名。    // [呂布, 張飛, 關羽]
        System.out.println(listHero.stream().sorted((a, b) -> b.getPower() - a.getPower()).limit(3).map((hero) -> hero.getName()).collect(Collectors.toList()));

        //3,找出武力前三並列的人
        Set<Integer> set = listHero.stream().map((h) -> h.getPower()).distinct().
                sorted((a, b) -> b - a).limit(3).collect(Collectors.toSet());
        System.out.println(set);   //[97, 98, 100]
        List<String> collect = listHero.stream().filter(h -> set.contains(h.getPower())).map(hero -> hero.getName()).collect(Collectors.toList());
        System.out.println(collect);  //[關羽, 張飛, 馬超, 呂布]

        //根據年齡段分組 0~20, 20~40 , 41~60 ,60以上
        Map<String, List<Hero>> ageMap = listHero.stream().collect(Collectors.groupingBy((hero) -> hero.ageRange()));
        ageMap.forEach((key,value) -> {
            List<String> ageList = value.stream().map(hero -> hero.getName()).collect(Collectors.toList());
            System.out.println(ageList);
        });

        //根據地區分組, 求個數
        // 用的是下游收集器
        Map<String, Long> locMap = listHero.stream().collect(Collectors.groupingBy(hero -> hero.getLoc(), Collectors.counting()));
        locMap.forEach((key,value) ->{
            System.out.println("地區:  "+key+ "\t "+"個數:"+value);
        });

        //並行計算 (1+2=3, 3+4=7, 7+5.....)
        List<Integer> list= Arrays.asList(1,2,4,3,5,6,7,8,9,10);
        int sum = list.parallelStream().mapToInt(a -> a).sum();
        System.out.println(sum);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章