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

Scala 之数组

可变数组与不可变数组

import scala.collection.mutable.ArrayBuffer// 不可变数组。 长度不可变,但是元素的值可变
object Demo1 {def main(args: Array[String]): Unit = {// 不可变数组定义方式// 未初始化有默认值 Int  =>  0val  arr1 : Array[Int] = new Array[Int](5)val  arr2 : Array[Int] = Array(2,2,2,2,2)val  arr3 = Array(3,3,3,3,3)//  对元素值改变。不会创建新数组arr1(0) = 3arr1.update(4,5)println(arr1.mkString(","))//数组遍历for(i<- 0 until arr1.length)      println(arr1(1))for(ele <- arr1)                        println(ele)val iterator = arr1.iteratorwhile(iterator.hasNext)    println(iterator.next())arr1.foreach(x => println(x))arr1.foreach(println(_))// 函数体只有一句,并且使用了已经存在函数,且参数是一一对应,那么此时参数列表可以省略arr1.foreach(println)//数组扩容   创建新数组。val r1 = arr1 :+ 9val r2 = arr1.+:(9)// +: 的: 要对着变量。否则就得 .+: 调用val r3 = 8 +: arr1 :+8 :+ 8println("---------------"+arr1.mkString("/"))println(r3.mkString("-"))//数组与数组的合并  ++ ++: :++ 产生新数组,都是在数组后拼接val v1 = arr1 ++ arr2val v2 = arr1.concat(arr3)//运行结果为  3|0|0|0|5|3|3|3|3|3   val v1 = arr1 ++ arr2 这里并不对arr1产生影响 。println(v2.mkString("|"))//创键范围内固定步长数组,含头不含尾val v3 =  Array.range(0,10,2)println(v3.mkString(","))//创建数组,并用指定逻辑产生的数据填充//   def fill(n: Int)(elem: => T): Array[T] = ???    柯理化函数  传名函数// ({})  这种形式, () 或 {} 可省略其一val v4 = Array.fill(6)({(Math.random() * 100).toInt})println(v4.mkString(","))// 数组翻转val v5 = v4.reverseprintln(v5.mkString(","))println("---------------------------------------------------------------------")//创建可变数组   是没有默认值的,必须初始化val a1 = new ArrayBuffer[Int]// 0println(a1.length)//a1(0) = 3   报错   0 is out of bounds (min 0, max -1)   数组无元素a1.+=(1)a1 += 1//指定初始长度, 但是也必须先 += 初始化元素 才可以 a2()访问val a2 = new ArrayBuffer[Int](3)val a3 =  ArrayBuffer[Int](3,3,3,3,3,3)println(a1)a1 += 20 +=: a1a1.append(2)a1.prepend(0)println(a1)println(a3)val array1 =  ArrayBuffer(1, 1, 3, 3, 1, 1)array1.insert(1,2)array1.update(0,0)array1.remove(array1.length-1)// 删除第一个3array1 -= 3//ArrayBuffer(0, 2, 1, 3, 1)println(array1)// BufferArray 与 Array 的转换。  .toArray  .toBuffer}
}

练习:猴子报数。15只猴子围成一圈报数,报到数字7的猴子被淘汰,下一只猴子从1重新报数,最后剩余的是哪只猴子?

package com.fesco.arrayobject MonkeyExec {def main(args: Array[String]): Unit = {// 定义数组,表示15只猴子// 用true表示猴子的还活着,用false表示猴子被淘汰val monkeys = Array.fill(15)(true)// 定义变量来记录还剩余的猴子数量var n = 15// 定义变量来记录报数var i = 1// 定义变量来记录下标var index = 0// 只要剩余的猴子数量>1那么就需要继续报数while (n > 1) {// 先判断这只猴子是否存活if (monkeys(index)) {// 判断这只猴子是否会被淘汰if (i == 7) {// 这只猴子被淘汰monkeys(index) = false// 剩余猴子数量-1n -= 1// 下一只猴子重新报数i = 0}// 报数+1i += 1}// 下一只猴子准备index += 1if (index == monkeys.length) index = 0}println(monkeys.mkString(", "))}}

二维数组

// 二维数组中的一维数组的长度可以不一致
val array1 = new Array[Array[Int]](3)
array1(0) = new Array[Int](5)
array1(1) = Array[Int](1, 2, 3, 4, 5)//ofDim 方法可定义一至五维数组
// 二维数组,每个数组长度为5  。  这种方式定义的每个一维数组长度要一致
val array2 = Array.ofDim[Int](2, 5)val array3 = Array(Array(1, 1, 1, 1, 1), Array(1, 1, 1, 1, 1), Array(1, 1, 1, 1, 1), Array(1, 1, 1, 1, 1), Array(1, 1, 1, 1, 1))// 输出的不是1 ,而是 () 。 赋值运算符的返回值是Unit
// println(array3(0)(0) = 1)//    杨辉三角形
//    1
//    1 1
//    1 2 1
//    1 3 3 1
//    1 4 5 4 1val arr = new Array[Array[Int]](5)
// 遍历数组
for (i <- 0 until 5) {// 初始化第i行一维数组arr(i) = new Array[Int](i + 1)// 填充元素for (j <- 0 to i) {// 每一行第一个或者最后一个元素是1if (j == 0 || j == i) arr(i)(j) = 1else arr(i)(j) = arr(i - 1)(j) + arr(i - 1)(j - 1)}println(arr(i).mkString("\t"))
}

相关文章:

Scala 之数组

可变数组与不可变数组 import scala.collection.mutable.ArrayBuffer// 不可变数组。 长度不可变&#xff0c;但是元素的值可变 object Demo1 {def main(args: Array[String]): Unit {// 不可变数组定义方式// 未初始化有默认值 Int > 0val arr1 : Array[Int] new Arr…...

【Phytium】飞腾D2000 UEFI/EDK2 适配 RTC(IIC SD3077)

文章目录 0. env1. 软件2. 硬件 10. 需求1. 硬件2. 软件 20. DatasheetCPURTC 30. 调试步骤1. 硬件环境搭建2. UEFI 开发环境搭建3. 修改步骤1. UEFI 中使能RTC驱动、配置RTC信息等1.1 使能RTC驱动1.2 修改RTC对应的IIC配置信息1.3 解决驱动冲突1.4 验证波形 2. 修改对应RTC驱动…...

如何利用纯前端技术,实现一个网页版视频编辑器?

纯网页版视频编辑器 一、前言二、功能实现三、所需技术四、部分功能实现4.1 素材预设4.2 多轨道剪辑 一、前言 介绍&#xff1a;本篇文章打算利用纯前端的技术&#xff0c;来实现一个网页版的视频编辑器。为什么突然想做一个这么项目来呢&#xff0c;主要是最近一直在利用手机…...

stm32实现hid键盘

前面的cubelmx项目配置参考 stm32实现hid鼠标-CSDN博客https://blog.csdn.net/anlog/article/details/137814494?spm1001.2014.3001.5502两个项目的配置完全相同。 代码 引用 键盘代码&#xff1a; 替换hid设备描述符 先屏蔽鼠标设备描述符 替换为键盘设备描述符 修改宏定…...

【单例模式】饿汉式、懒汉式、静态内部类--简单例子

单例模式是⼀个单例类在任何情况下都只存在⼀个实例&#xff0c;构造⽅法必须是私有的、由⾃⼰创建⼀个静态变量存储实例&#xff0c;对外提供⼀个静态公有⽅法获取实例。 目录 一、单例模式 饿汉式 静态内部类 懒汉式 反射可以破坏单例 道高一尺魔高一丈 枚举 一、单例…...

windows关闭Windows Search功能

我发现windows最恶心的功能就是自动更新和搜索。自动更新就是个毒瘤&#xff0c;得到了全世界的人讨厌。 而搜索功能难用、慢和造成卡死&#xff0c;根本没有存在的必要。并且他的windows search filter服务会在每次移动大量文件后建立索引&#xff0c;持续的占用cpu和硬盘的资…...

政安晨:【深度学习神经网络基础】(九)—— 在深度学习神经网络反向传播训练中理解梯度

目录 简述 理解梯度 什么是梯度 计算梯度 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 简述 在深度…...

免费的 ChatGPT、GPTs、AI绘画(国内版)

&#x1f525;博客主页&#xff1a;白云如幻❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ ChatGPT3.5、GPT4.0、GPTs、AI绘画相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚…...

UniApp 微信小程序:在 onLaunch 中等待异步方法执行完成后,再调用页面中的接口

最近遇到了一个问题&#xff1a;在 App.vue 中的 onLaunch 中调用登录接口时&#xff0c;由于异步登录尚未完成就调用了 index 页面的接口&#xff0c;导致 token 异常。如何确保页面在 App 中的 onLaunch 执行完毕后再继续执行呢&#xff1f; 在网上查阅了一些资料&#xff0c…...

【招贤纳士】长期有效

【招贤纳士】长期有效&#xff0c;有意者联系 一、SLAM算法工程师工作内容&#xff1a;任职资格&#xff1a; 二、规划算法工程师工作内容&#xff1a;任职资格&#xff1a; 三、感知算法工程师岗位职责&#xff1a;任职要求&#xff1a;加分项&#xff1a; 四、传感器系统工程…...

华为配置静态ARP示例

华为配置静态ARP示例 组网图形 图1 配置静态ARP组网图 静态ARP简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 静态ARP简介 静态ARP表项是指网络管理员手工建立IP地址和MAC地址之间固定的映射关系。 正常情况下网络中设备可以通过ARP协议进行ARP表项的动态学习&…...

LRTimelapse for Mac:专业延时摄影视频制作利器

LRTimelapse for Mac是一款专为Mac用户设计的延时摄影视频制作软件&#xff0c;它以其出色的性能和丰富的功能&#xff0c;成为摄影爱好者和专业摄影师的得力助手。 LRTimelapse for Mac v6.5.4中文激活版下载 这款软件提供了直观易用的界面&#xff0c;用户可以轻松上手&#…...

Java复习第十九天学习笔记(Cookie、Session登录),附有道云笔记链接

【有道云笔记】十九 4.7 Cookie、Session登录 https://note.youdao.com/s/VwpxfEim 一、会话技术简介 生活中会话 我&#xff1a; 小张&#xff0c;你会跳小苹果码&#xff1f; 小张&#xff1a; 会&#xff0c;怎么了&#xff1f; 我&#xff1a; 公司年会上要表演节目&a…...

HBase的数据模型与架构

官方文档&#xff1a;Apache HBase – Apache HBase™ Homehttps://hbase.apache.org/ 一、HBase概述 1.概述 HBase的技术源自Google的BigTable论文&#xff0c;HBase建立在Hadoop之上&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;用于…...

卷积神经网络的结构组成与解释(详细介绍)

文章目录 前言 1、卷积层 2、激活层 3、BN层 4、池化层 5、FC层&#xff08;全连接层&#xff09; 6、损失层 7、Dropout层 8、优化器 9、学习率 10、卷积神经网络的常见结构 前言 卷积神经网络是以卷积层为主的深层网络结构&#xff0c;网络结构包括有卷积层、激活层、BN层、…...

使用ansible的连通性检查的关键参数

使用ansible进行ping命令的时候发现有些不通 ansible cba -m ping 10.1.1.1 | FAILED! > {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this h…...

Jenkins用maven风格build报错解决过程记录

1、Jenkins2.453新建项目&#xff0c;构建风格选的maven 2、自由风格构建部署没有任何问题&#xff0c;但是maven风格build一直失败&#xff0c;报错如下图 3、解决方案&#xff1a;在系统管理–系统配置–Maven项目配置&#xff0c;删除全局MAVEN_OPT的路径信息&#xff0c;…...

Web3.0与AI的交融:开启智能互联网新时代

目前有140 多个 Web3 AI 概念项目&#xff0c;覆盖了基础设施、数据、预测市场、计算与算力、教育、DeFi & 跨链、安全、NFT & 游戏 & 元宇宙、搜索引擎、社交 & 创作者经济、AI 聊天机器人、DID & 消息传递、治理、医疗、交易机器人等诸多方向。持续关注…...

自动化_Ansible学习笔记

文章目录 Ansible 介绍配置文件主配置文件优先级 常用命令ansible-playbook ad-hocinventory 主机清单Playbook 剧本YAML格式 ansible 模块介绍模块对应功能Commands modules(命令模块)command (命令)shell (外壳) 官方帮助文档 模块索引playbook 开头示例系统类setup (收集远程…...

用于密集视觉冲击的紧凑三维高斯散射Compact 3D Gaussian Splatting For Dense Visual SLAM

Compact 3D Gaussian Splatting For Dense Visual SLAM 用于密集视觉冲击的紧凑三维高斯散射 Tianchen Deng 邓天辰11Yaohui Chen 陈耀辉11Leyan Zhang 张乐妍11Jianfei Yang 杨健飞22Shenghai Yuan 圣海元22Danwei Wang 王丹伟22Weidong Chen 陈卫东11 Abstract 摘要 …...

ChatGPT揭秘:高效论文写作的秘籍

ChatGPT无限次数:点击直达 ChatGPT揭秘&#xff1a;高效论文写作的秘籍 引言 在当今信息爆炸的时代&#xff0c;高效撰写论文对于研究者和学术工作者至关重要。随着人工智能技术的不断发展&#xff0c;ChatGPT等自然语言处理工具的出现为论文写作提供了全新的思路和工具。本文…...

电脑不能上网,宽带调制解调器出现问题如何处理

目录 一、问题说明 二、解决方案 一、问题说明 内网的设备能互联&#xff0c;内网的各个设备无法连外网。 电脑在检测网络时&#xff0c;出现以下提示&#xff1a; 二、解决方案 首先重启光猫&#xff08;我们是电信宽带&#xff09;。 如果还是有问题&#xff0c;再重启…...

云计算: OVN 集群 部署分布式交换机

目录 一、实验 1.环境 2.OVN 集群 部署云主机 3.中心端添加DVS分布式大二层交换机 二、问题 1.南向控制器查看主机名只显示localhost 2.中心端如何添加DVR分布式⼤三层路由器 一、实验 1.环境 (1) 主机 表1 宿主机 主机架构软件主要服务IP备注ovn_central中心端 ovn…...

electron+Vue3构建桌面应用之IPC通讯

最近在做一个C/S架构的项目预研 过程中遇到 Electron 与 Vue3 通讯的问题&#xff0c;费劲巴力的在网上找方案&#xff0c;发现都不理想&#xff0c;最终攻克之后&#xff0c;计划将过程写下来&#xff0c;供有需求的同学白嫖&#xff01; 开始之前&#xff0c;先说一件重要的…...

html球体涨水

简单 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>div…...

ubuntu手动编译opencv 4.9.0遇到的问题汇总

ubuntu手动编译opencv 4.9.0遇到的问题汇总 编译流程 以4.9.0版本为例&#xff0c;可参考&#xff1a;https://docs.opencv.org/4.9.0/d2/de6/tutorial_py_setup_in_ubuntu.html 编译加速 https://blog.csdn.net/tfb760/article/details/104030841 ippicv_2021.10.0_lnx_i…...

SEO之搜索引擎的工作原理(三)

初创企业需要建站的朋友看这篇文章&#xff0c;谢谢支持&#xff1a;我给不会敲代码又想搭建网站的人建议 &#xff08;接上一篇。。。&#xff09; 排名 经过搜索引擎蜘蛛抓取页面&#xff0c;索引程序计算得到倒排索引后&#xff0c;搜索引擎就准备好可以随时处理用户搜索了…...

开发语言漫谈-python

python的语法和C完全不同&#xff0c;但是它也是C写的。也就是想成为高手&#xff0c;C是必备武功。不是每个人都想成为武林高手。所以客观上需要个简单上手开发效率高的语言&#xff0c;就这样python诞生了。python的发明人其实不喜欢蟒蛇&#xff0c;但是不知道为啥选这个名字…...

JVM指令收集

1. 栈和局部变量操作 1.1 将常量压入栈的指令aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将int类型常量1压入栈 iconst_2 将int类型常量2压入栈 iconst_3 将int类型常量3压入栈 iconst_4 将int类型常量4压入…...

小程序解析二维码:jsQR

1.了解jsQR jsQR是一个纯javascript脚本实现的二维码识别库&#xff0c;不仅可以在浏览器端使用&#xff0c;而且支持后端node.js环境。jsQR使用较为简单&#xff0c;有着不错的识别率。 2.效果图 3.二维码 4.下载jsqr包 npm i -d jsqr5.代码 <!-- index.wxml --> &l…...

聚云测网站怎么做的/电脑培训班价目表

自从去年一加7 Pro手机引领高刷新率屏幕&#xff0c;并开启高帧内容体验先河后&#xff0c;高帧屏旗舰手机越来越受市场的认同&#xff0c;今年的一众旗舰手机普遍搭载90Hz以上高刷新率屏幕。一加8 Pro手机则再进一步&#xff0c;以领先的120Hz刷新率2K分辨率三星AMOLED瞳孔屏的…...

什么网站系统好/在线生成个人网站源码

MapReduce工作原理图文详解 前言&#xff1a; 前段时间我们云计算团队一起学习了hadoop相关的知识&#xff0c;大家都积极地做了、学了很多东西&#xff0c;收获颇丰。可是开学后&#xff0c;大家都忙各自的事情&#xff0c;云计算方面的动静都不太大。呵呵~不过最近在胡老大…...

wordpress淘宝客2016/在线教育

大家好&#xff01;我是【AI 菌】&#xff0c;一枚爱弹吉他的程序员。我热爱AI、热爱编程、热爱分享&#xff01; 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C 感兴趣&#xff0c;可以关注我的动态&#xff0c;我们一起学习&#xff0c…...

最专业微网站建设价格/宁波seo优化公司排名

pip install pycryptodome然后去C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages把下面这个文件夹名字开头的c改成大写的C&#xff0c;有的可能下载下来默认就是大写问题&#xff1a;1、报错time out &#xff0c;网速不行&#xff0c;要么换…...

深圳外贸建站/网络营销推广方式包括哪些

描述 分别定义bool&#xff0c;char类型的变量各一个&#xff0c;并依次输出它们的存储空间大小&#xff08;单位&#xff1a;字节&#xff09;。 输入无。输出一行&#xff0c;两个整数&#xff0c;分别是两个变量的存储空间大小&#xff0c;用一个空格隔开。样例输入 &#x…...

如何增加网站权重/腾讯疫情实时数据

化学绘图软件ChemDraw出了最新版ChemOffice 15.1了&#xff0c;其下有三个不同组件&#xff0c;其中ChemDraw15.1 Pro使用范围最广。当我们下载完软件后就需要对其进行安装&#xff0c;一般按照流程来就没有什么大的问题&#xff0c;但是一些新手用户对一些细节不是很了解&…...