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);
}
}