函数编程(Leo)

函数编程

函数对象

好处:

​ 1.逻辑参数化
屏幕截图 2025-08-08 114238

​ 2.延迟执行

函数对象表现形式

​ Lambda表达式

屏幕截图 2025-08-08 115830

函数接口

屏幕截图 2025-08-13 150405

屏幕截图 2025-08-13 150716

方法引用

image-20250821093021117

闭包

image-20250825142751383

柯里化

image-20250825145808729

Stream API

构建流

image-20250825171358583

流合并与截取

image-20250825172548962

image-20250825172635551

image-20250825172707319

流生成

image-20250825223308293

流查找与判断

image-20250826090819650

image-20250826090844045

流去重与排序

去重

image-20250826092102605

排序

image-20250826092428923

image-20250826092602888

流化简

image-20250826093653885

流收集

容器创建

image-20250826094532907

收集器

image-20250826095737962

image-20250826095805168

image-20250826095905095

image-20250826100009180

下游收集器

image-20250827104701166

image-20250827141356399

image-20250827153042921

image-20250827153203269

image-20250827153414259

image-20250827153705609

三种基本流

image-20250827154242193

image-20250827154252464

普通流转基本流

image-20250827154732796

Stream流的特性

一次使用:流只能使用一次

两类操作:中间操作(lazy 懒惰,当实际操作数据时才执行);终结操作(eager 迫切)

中间操作

image-20250827160308676

终结操作

image-20250827160410242

收集器

image-20250827160515523

并行流

1.数据量问题:数据量大是2才建议用并行流

2.线程会无限增加吗:跟cpu能处理的线程数有关

3.收尾的意义:转不可变集合,StringBuilder 转String...

4.是否线程安全:不会有线程安全问题

5.特性:

​ 是否需要收尾(默认收尾)

​ 是否需要保证顺序(默认保证)

​ 容器是否支持并发(默认不支持)

image-20250828100832121

A可以减少内存的使用,B对内存的使用量大

image-20250828101426986

image-20250828101637740

流效率

在大数据量的流计算时,性能:forearch约等于基本流 <包装流 <普通流**

​ 普通流不适合做计算,要计算先转基本流

百万级数据量的时候,并行流效率高>forearch>串行流

image-20250828110019246

posted @ 2025-10-23 09:46  Leo0OO  阅读(10)  评论(0)    收藏  举报