当前位置: 首页 > news >正文

网站备案 固定电话个人博客网站取名

网站备案 固定电话,个人博客网站取名,中陕核建设集团网站,商务网站建设实验Stream API 的设计融合了多个经典设计模式#xff1a; 1. 策略模式#xff08;Strategy Pattern#xff09; 策略模式定义了一个算法的家族#xff0c;将每个算法封装起来#xff0c;并使它们可以互换。Stream API 中的每个操作#xff08;如 filter(), map()#xff…Stream API 的设计融合了多个经典设计模式 1. 策略模式Strategy Pattern 策略模式定义了一个算法的家族将每个算法封装起来并使它们可以互换。Stream API 中的每个操作如 filter(), map()都是一个策略它允许用户以灵活的方式组合这些操作。 import java.util.*; import java.util.stream.*;public class StrategyPatternDemo {public static void main(String[] args) {ListInteger numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);// 策略1: 过滤偶数ListInteger evenNumbers numbers.stream().filter(n - n % 2 0) // 策略1.collect(Collectors.toList());// 策略2: 将每个数字加倍ListInteger doubledNumbers numbers.stream().map(n - n * 2) // 策略2.collect(Collectors.toList());System.out.println(Even Numbers: evenNumbers);System.out.println(Doubled Numbers: doubledNumbers);} }输出 Even Numbers: [2, 4, 6, 8, 10] Doubled Numbers: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]上面代码中filter 和 map 都是不同的策略操作它们可以灵活地组合在一起。你可以选择不同的策略如筛选偶数或将数字加倍并将它们组合成一个管道来处理数据。 2. 装饰者模式Decorator Pattern Stream API 中的中间操作如 filter(), map()是典型的装饰者模式。每个中间操作都会返回一个新的流对象逐步增强原始流的功能。 import java.util.*; import java.util.stream.*;public class DecoratorPatternDemo {public static void main(String[] args) {ListInteger numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);// 使用装饰者模式: 先过滤偶数再将每个数字加倍ListInteger result numbers.stream().filter(n - n % 2 0) // 装饰者1: 筛选偶数.map(n - n * 2) // 装饰者2: 每个数字加倍.collect(Collectors.toList());System.out.println(Processed Numbers: result);} }输出 Processed Numbers: [4, 8, 12, 16, 20]上面代码中filter 和 map 是装饰者模式的实现。每个中间操作都返回一个新的流逐步增强原始流的功能。最终的流会先过滤偶数再将这些偶数乘以 2。 3. 惰性求值Lazy Evaluation Stream API 的惰性求值意味着中间操作不会立即执行只有在遇到终端操作时流才会开始计算。以下是一个示例 import java.util.*; import java.util.stream.*;public class LazyEvaluationDemo {public static void main(String[] args) {ListInteger numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);// 惰性求值只有在终端操作forEach执行时流才会开始计算numbers.stream().filter(n - {System.out.println(Filtering: n);return n % 2 0; // 过滤偶数}).map(n - {System.out.println(Mapping: n);return n * 2; // 每个数字加倍}).forEach(n - System.out.println(Final Result: n)); // 输出结果} }输出 Filtering: 1 Filtering: 2 Mapping: 2 Final Result: 4 Filtering: 3 Filtering: 4 Mapping: 4 Final Result: 8 Filtering: 5 Filtering: 6 Mapping: 6 Final Result: 12 Filtering: 7 Filtering: 8 Mapping: 8 Final Result: 16 Filtering: 9 Filtering: 10 Mapping: 10 Final Result: 20上面代码中filter 和 map 都是懒执行的操作。filter 和 map 的计算只有在调用终端操作forEach时才会开始执行。可以看到只有经过过滤和映射的元素才会打印出来。 4. 合并模式Merging / ForkJoin 并行流实现了合并模式它通过 ForkJoinPool 将任务拆分成子任务并行执行然后合并结果。以下是一个简单的并行流的示例 import java.util.*; import java.util.stream.*;public class ForkJoinDemo {public static void main(String[] args) {ListInteger numbers Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);// 使用并行流执行计算int sum numbers.parallelStream().map(n - {System.out.println(Processing: n in thread: Thread.currentThread().getName());return n;}).reduce(0, Integer::sum);System.out.println(Total Sum: sum);} }输出不同的线程名可能会有所不同 Processing: 7 in thread: main Processing: 6 in thread: main Processing: 8 in thread: ForkJoinPool.commonPool-worker-2 Processing: 9 in thread: main Processing: 10 in thread: main Processing: 2 in thread: ForkJoinPool.commonPool-worker-2 Processing: 3 in thread: ForkJoinPool.commonPool-worker-1 Processing: 1 in thread: ForkJoinPool.commonPool-worker-2 Processing: 5 in thread: main Processing: 4 in thread: ForkJoinPool.commonPool-worker-1 Total Sum: 55在上面代码中parallelStream() 会将任务分成多个子任务并行执行。每个子任务在不同的线程中处理数据最终通过 reduce 操作将结果合并在这个例子中是求和。 总结 策略模式Stream 中的每个操作如 filter()map()都代表一个策略可以灵活组合。装饰者模式中间操作是装饰者逐步增强流的功能操作不会修改原始流。惰性求值Stream 的中间操作如 filter()map()在终端操作如 forEach()触发时才会执行。合并模式并行流通过将任务拆分成多个子任务并行执行最终合并结果适合多核处理器的计算密集型任务。
http://www.w-s-a.com/news/173331/

相关文章:

  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断