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

利用映射算子打印菱形

文章目录

  • 一、利用RDD完成
    • (一)右半菱形
    • (二)左半菱形
    • (三)完整菱形
    • (四)输出任意大菱形
  • 二、利用Java完成
    • (一)右半菱形
    • (二)左半菱形
    • (三)完整菱形
    • (四)输出任意大菱形
  • 三、利用Scala完成
    • (一)右半菱形
    • (二)左半菱形
    • (三)完整菱形
    • (四)输出任意大菱形
  • 四、实战总结
    • (一)利用RDD完成
    • (二)利用Java完成
    • (三)利用Scala完成

一、利用RDD完成

(一)右半菱形

val rdd = sc.makeRDD(List(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1))
val rdd1 = rdd.map("*" * _)
rdd1.collect.foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

(二)左半菱形

val rdd = sc.makeRDD(List(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1))
val rdd1 = rdd.map(i => " " * (21 - i) + "*" * i)
rdd1.collect.foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

(三)完整菱形

val rdd = sc.makeRDD(List(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1))
val rdd1 = rdd.map(i => " " * ((21 - i) / 2) + "*" * i)
rdd1.collect.foreach(println)

在这里插入图片描述

(四)输出任意大菱形

  • 由用户确定n值
import scala.collection.mutable.ListBuffer
val list = new ListBuffer[Int]()
val n = 51
(1 to n by 2).foreach(list.append(_))
(n - 2 to 1 by -2).foreach(list.append(_))
val rdd = sc.makeRDD(list)
val rdd1 = rdd.map(i => " " * ((n - i) / 2) + "*" * i)
rdd1.collect.foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

二、利用Java完成

  • 导入所需类
    在这里插入图片描述

(一)右半菱形

List<Integer> data = Arrays.asList(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1);
data ==> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1]
data.stream().map(i -> "*".repeat(i)).collect(Collectors.toList()).forEach(System.out::println)
  • 执行代码,查看结果
    在这里插入图片描述

(二)左半菱形

List<Integer> data = Arrays.asList(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1);
data ==> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1]
data.stream().map(i -> " ".repeat(21 - i) + "*".repeat(i)).collect(Collectors.toList()).forEach(System.out::println)
  • 执行代码,查看结果
    在这里插入图片描述

(三)完整菱形

List<Integer> data = Arrays.asList(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1);
data ==> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1]
data.stream().map(i -> " ".repeat((21 - i) / 2) + "*".repeat(i)).collect(Collectors.toList()).forEach(System.out::println)
  • 执行代码,查看结果
    在这里插入图片描述

(四)输出任意大菱形

  • 由用户确定n
List<Integer> list = new ArrayList<>();
int n = 51;
for (int i = 1; i <= n; i += 2) list.add(i);
for (int i = n - 2; i >= 1; i -= 2) list.add(i);
list.stream().map(i -> " ".repeat((n - i) / 2) + "*".repeat(i)).collect(Collectors.toList()).forEach(System.out::println)
  • 执行代码,查看结果
    在这里插入图片描述

三、利用Scala完成

(一)右半菱形

val list = List(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1)
val list1 = list.map("*" * _)
list1.foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

(二)左半菱形

val list = List(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1)
val list1 = list.map(i => " " * (21 - i ) + "*" * i)
list1.foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

(三)完整菱形

val list = List(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1)
val list1 = list.map(i => " " * ((21 - i ) / 2) + "*" * i)
list1.foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

(四)输出任意大菱形

  • 由用户确定n
import scala.collection.mutable.ListBufferval list = new ListBuffer[Int]()
val n = 51
(1 to n by 2).foreach(list.append(_))
(n - 2 to 1 by -2).foreach(list.append(_))
list.map(i => " " * ((n - i) / 2) + "*" * i).foreach(println)
  • 执行代码,查看结果
    在这里插入图片描述

四、实战总结

  • 在本次实战中,我们分别使用了RDD、Java和Scala三种方式来生成菱形图案。

(一)利用RDD完成

  1. 右半菱形:首先创建一个包含奇数的列表,然后使用map函数将每个元素转换为对应数量的*字符,最后打印出结果。
  2. 左半菱形:与右半菱形类似,只是在转换时增加了空格字符,使图案向左对齐。
  3. 完整菱形:结合了左右半菱形的方法,根据元素的位置添加不同数量的空格和*字符。
  4. 输出任意大菱形:由用户确定n值,然后生成一个包含奇数和偶数的列表,接着根据列表中的元素生成一个字符串列表,并打印出结果。

(二)利用Java完成

  1. 右半菱形:与RDD方法类似,只是使用了Java的Stream API进行操作。
  2. 左半菱形:与RDD方法类似,只是在转换时增加了空格字符,使图案向左对齐。
  3. 完整菱形:结合了左右半菱形的方法,根据元素的位置添加不同数量的空格和*字符。
  4. 输出任意大菱形:由用户确定n值,然后生成一个包含奇数和偶数的列表,接着根据列表中的元素生成一个字符串列表,并打印出结果。

(三)利用Scala完成

  1. 右半菱形:与RDD方法类似,只是使用了Scala的List进行操作。
  2. 左半菱形:与RDD方法类似,只是在转换时增加了空格字符,使图案向左对齐。
  3. 完整菱形:结合了左右半菱形的方法,根据元素的位置添加不同数量的空格和*字符。
  4. 输出任意大菱形:由用户确定n值,然后生成一个包含奇数和偶数的列表,接着根据列表中的元素生成一个字符串列表,并打印出结果。

相关文章:

利用映射算子打印菱形

文章目录 一、利用RDD完成&#xff08;一&#xff09;右半菱形&#xff08;二&#xff09;左半菱形&#xff08;三&#xff09;完整菱形&#xff08;四&#xff09;输出任意大菱形 二、利用Java完成&#xff08;一&#xff09;右半菱形&#xff08;二&#xff09;左半菱形&…...

亚信安全正式推出5G专网安全测试服务 圆满完成核电客户5G项目落地

近日&#xff0c;亚信安全联合北京触点互动信息技术有限公司成功完成某核电客户5G专网项目&#xff0c;从终端安全&#xff0c;基站&#xff0c;核心网网元&#xff0c;切片安全以及接口安全等重点存在安全风险点进行测试&#xff0c;发现潜藏的安全隐患漏洞&#xff0c;为客户…...

第二十五章CSS中的技巧(导航栏、下拉列表)

1.CSS精灵 1.什么是CSS精灵 英文叫法 CSS sprites&#xff0c;通常被解释为“CSS图像拼合”或“CSS贴图定位”;其实就是把网页中一些背景图片整合到一张图片文件中&#xff0c;再利用css“background-image”&#xff0c; “background-repeat”,“background-position”的组…...

大话设计模式解读01-简单工厂模式

本系列的文章&#xff0c;来介绍编程中的设计模式&#xff0c;介绍的内容主要为《大话设计模式》的读书笔记&#xff0c;并改用C语言来实现&#xff08;书中使用的是.NET中的C#&#xff09;,本篇来学习第一章&#xff0c;介绍的设计模式是——简单工厂模式。 1 面向对象编程 …...

35python数据分析numpy基础之setdiff1d求两个数组的差集

1 python数据分析numpy基础之setdiff1d求两个数组的差集 python的numpy库的setdiff1d(x,y)函数&#xff0c;表示数组x与y的差&#xff0c;即在x且不在y中的元素&#xff0c;且进行去重排序。 用法 numpy.setdiff1d(ar1, ar2, assume_uniqueFalse)描述 numpy.setdiff1d(ar1,…...

JVM 指针压缩

运用java内存对齐填充&#xff0c;对java内存进行8字节划分&#xff0c;java对象指针映射到每个划分区域上&#xff0c;使得4个字节&#xff08;32位&#xff09;表示2^32个地址&#xff0c;从而使4个字节指针映射32G内存空间。 1.为什么进行指针压缩&#xff1a; jvm从32位变…...

时序预测 | Matlab灰色-马尔科夫预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab灰色-马尔科夫预测 灰色马尔科夫预测&#xff08;Grey-Markov Prediction&#xff09;是一种用于时间序列预测的方法&#xff0c;它结合了灰色系统理论和马尔科夫链模型。灰色系统理论是一种非参数化的预测方法…...

代码界的奥斯卡:SpringBoot测试的艺术与科学

探索SpringBoot测试的神秘世界&#xff0c;揭秘如何成为代码质量的守护神&#xff01;从基础环境搭建到高级集成测试&#xff0c;本系列教程带你一步步构建坚不可摧的测试防线。深入JUnit 5的强大功能&#xff0c;学习如何用MockMvc和Testcontainers打造逼真的测试场景。准备好…...

安防监控视频平台LntonCVS视频监控汇聚平台遏制校园暴力保护校园学生安全应用方案

未成年人被誉为祖国的花朵&#xff0c;是我们国家的未来。然而&#xff0c;最近频繁曝出的未成年霸凌事件却引发了社会的广泛关注。这些事件手段残忍&#xff0c;事态恶劣&#xff0c;引发了全社会对如何保护未成年身心健康、规避霸凌事件发生的深刻思考。 为了更好地保障学生的…...

Python | 平均绩点

字符串的概念和特点 字符串既可以使用单引号&#xff0c;也可以使用双引号""来创建 可以使用运算符来拼接字符串&#xff0c;并返回字符串拼接后的结果。 first_name "Tom" last_name "Jerry" full_name first_name " " &quo…...

2024年有什么值得入手的5G长期套餐大流量卡推荐?大流量手机卡入手指南(超4款正规手机卡实测总结)

前言 24年有什么值得入手的5G大流量卡推荐&#xff1f;大流量手机卡入手指南&#xff08;超4款正规手机卡实测总结&#xff09; 四大运营商有哪些大流量卡&#xff0c;可电话&#xff0c;非物联网卡 所有卡激活后&#xff0c;均可以在官方app可查、 所有都是优惠长期 5G大流…...

《尚上优选》项目Bug记录

写在前面 本项目为该系列第二个项目&#xff0c;有一些问题如果没有在本文摘录&#xff0c;可以到 《云尚办公》项目 BUG记录 中查找是否有类似的解决方案。 &#xff08;2024.3.24以下&#xff09; (P11) 管理端前端node20版本启动报OpenSSL错误 经典问题&#xff0c;把we…...

Flutter 中的 PopupMenuTheme 小部件:全面指南

Flutter 中的 PopupMenuTheme 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它允许开发者使用 Dart 语言构建美观、响应式的移动、Web 和桌面应用。Flutter 的 Material 组件库中包含了丰富的 UI 组件&#xff0c;其中 PopupMenuButt…...

uni-app的网络请求库封装及使用(同时支持微信小程序)

其实uni-app中内置的uni.request()已经很强大了&#xff0c;简单且好用。为了让其更好用&#xff0c;同时支持拦截器&#xff0c;支持Promise 写法&#xff0c;特对其进行封装。同时支持H5和小程序环境&#xff0c;更好用啦。文中给出使用示例&#xff0c;可以看到使用变得如此…...

力扣524. 通过删除字母匹配到字典里最长单词

给你一个字符串 s 和一个字符串数组 dictionary &#xff0c;找出并返回 dictionary 中最长的字符串&#xff0c;该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个&#xff0c;返回长度最长且字母序最小的字符串。如果答案不存在&#xff0c;则返回空字符串。 示…...

【代码随想录】【算法训练营】【第27天】 [39]组合总和 [40] 组合总和II [131]分割回文串

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day26&#xff0c; 休息的周末~ day 27&#xff0c;周一&#xff0c;库存没了&#xff0c;哭死~ 题目详情 [39] 组合总和 题目描述 39 组合总和 解题思路 前提&#xff1a;组合的子集问题&…...

解决 git 命令 Problem with the SSL CA cert (path? access rights?)

/etc/pki/nssdb 错误 运行命令&#xff1a; GIT_CURL_VERBOSE1 git clone git_repo_url 会输出详细错误信息 Cloning into fp_sdk... * Couldnt find host xxx.com in the .netrc file; using defaults * About to connect() to xxx.com port 443 (#0) * Trying 10.44.52.7…...

详解:重庆耶非凡的选品师项目有哪些优势?

在竞争激烈的电商市场中&#xff0c;重庆耶非凡科技有限公司凭借其独特的选品师项目&#xff0c;成功地在众多企业中脱颖而出。这一项目不仅体现了公司对市场趋势的敏锐洞察力&#xff0c;更彰显了其专业的选品能力和对消费者需求的深刻理解。 首先&#xff0c;耶非凡的选品师项…...

DSP28335模块配置模板系列——GPIO配置模板

在自己的电脑上构建出一套模块配置模板&#xff0c;可以大幅节省DSP程序开发时间&#xff0c;从而达到事半功倍的效果。对于初学者&#xff0c;掌握了模块配置&#xff0c;也就能实现大部分的单片机功能。 在DSP28335模块配置模板系列&#xff0c;不仅会给出GPIO、ADC、EQEP、E…...

【SringBoot项目中MyBatis-Plus多数据源应用实践】

文章目录 前言 一、Mybatis-Plus是什么&#xff1f; 二、多数据源是什么&#xff1f; 三、使用步骤 1. 新建一个SpringBoot项目 2. 引入必要的MyBatis架包 3. 新建两个数据库及两张表 3.3.1 新建数据库&#xff1a;DB_A&#xff0c;并创建一张数据表alarm_kind&#xff0c;以及…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...