Scala之Array数组

 可修改Array

import scala.collection.mutable.ArrayBuffer
//Array:数组
//可修改的:ArrayBuffer
//不可修改的:Array
object Test1 {//可修改的:ArrayBufferdef main(args: Array[String]): Unit = {//1.新建val arr1 =ArrayBuffer(1,2,3)//2.添加arr1 +=4arr1.insert(0,100)//3.删除arr1-=3//删除指定元素arr1.remove(0)//删除指定位置(下标)的元素//4.修改。通过下标来修改arr1(0)=50//把下标为0的元素赋值为50//注意 下标不能越界。有效的范围是:0-长度-1println(arr1.length)//length 长度,用来获取元素的个数println(arr1(10))//IndexOutOfBoundsException//5.查询//5.1  判断某个元素在数组中是否存在println(s"50在数组中吗?${arr1.contains(50)}")//5.2找到指定的元素的下标//-1:表示这个元素在数组中不存在!println(s"500在数组中的下标是?${arr1.contains(500)}")//6.遍历//for, foreach,iterator//for(i<-arr1)println(i)//println("-"*50)//arr1.foreach(println)//println("-"*50)for(i<-arr1)println(i)println("-"*50)arr1.foreach(println)println("-"*50)val it1=arr1.iteratorwhile (it1.hasNext)println(it1.next())}
}

 不可修改Array

  //不可变的Array:长度不可变def main(args: Array[String]): Unit = {val arr1 = Array(1, 2, 3)arr1(0) = 100arr1.foreach(println)//数组的常用的方法 (对于可变和不可变的数组都可以使用)//1.截取。从源数组中,取一部分,组成一个新的数组//arr1.slice(起点下标-不包括)val arr2=arr1.slice(2,5)arr2.foreach(println)//2.遍历.foreach//3.映射 map//Array(1,2,3)-------->Array(2,4,6)val arr3 =Array(1,2,3).map(_*2)arr3.foreach(println)//(2,4,6)//4.过滤filterprintln("-"*50)val arr4=Array(2,3,4,5,6).filter(e=>e%2==1)arr4.foreach(println)//5.折叠reduceprintln(Array(1,2,3,4).reduce((a,b)=>a+b))println("-"*50)//多维数组val arr5=Array(Array(1,2,3),Array(4,5,6),Array(7,8,9))//9println(  arr5(2)(2)  )//4println(  arr5(1)(0)  )//创造二维数据
//    val arr6=Array.ofDim[Int](3,3,3)
//    arr6(0)(0)(0)=1//由一维数组接化得到二维的数组
val arr6=Array(2,3,4,5,6).grouped(3)//对数组中的元素,三组一个,升级为二维数组while (arr6.hasNext){val rs =arr6.next()println(rs(0))}

run......

课后小习题

1.下面关子不可变数组说法正确的是?(C)
A.可以随时修改其元素的值。
B.可以改变其大小。
C.-旦创建,内容和大小都不能改变。
D.不能使用素引访问

2.要创建-个可变 Array,需要(B)
A.使用 val 关键字和 Arrey 类型。
B.导入scala.collection.mutable.ArrayBuffer,并使用

C,直接使用 Array 类型,无需导入其他库。
D.使用 vax 关键字和 Array 类型。

3.对于-个 Array,获取其长度使用(B)

A.可以随时修改其元素的值。
B.可以欧变其大小
C.一旦创建,内容和大小都不能改变。
D.不能使用索引访问无素。
4.创建一个可变Array,要(B
A使用val关键字和Array共型。
B.等入scala. collection mutable.ArrayBuffer并使用它创建。
C.直接使用Array兴型,无善导入共他库。
D.使用war关键字和Array共型。
5.财于一个Ary。联取美长庆使用(B
A.SLze属性。
B. length 黑性
C.count方法
D.没有专门的方法或属性获取长度。
6.在多维数组中,访问无素需要(B)
A.使用一个索马。#
B.根据维度数量使用相应数量的索引。
C.不能直接访问无素。
D,使用特殊的访问方法。
7.grouped方法的作用是(B)
A.将数组无素随机打乱。
B.将数组按照指定大小分组。
C.对数纪无素进行排序。
D.计算数组无素的总和。

操作任务

梦想清单管理

case class DreamItem(content: String, isCompleted: Boolean, dueDate: String, priority: Int)import scala.collection.mutable.ArrayBufferobject DreamListManagement {def main(args: Array[String]): Unit = {// 创建可变的DreamItem数组val dreamList = ArrayBuffer[DreamItem]()// 添加3个梦想dreamList += DreamItem("稳定的工作", false, "2034-12-31", 3)dreamList += DreamItem("一个自己房子", false, "2035-06-30", 2)dreamList += DreamItem("养一只狗狗", false, "2034-11-30", 1)// 将第2个梦想设置为已完成dreamList(1) = dreamList(1).copy(isCompleted = true)// 调高第3个梦想的优先级,这里假设调高到5dreamList(2) = dreamList(2).copy(priority = 5)// 根据优先级从高到低排序val sortedDreams = dreamList.sortBy(_.priority)(Ordering.Int.reverse)// 把优先级排名前5的梦想保存到一个新的列表中val topFiveDreams = sortedDreams.take(5)// 循环输出梦想列表topFiveDreams.foreach { dream =>println(s"内容: ${dream.content}, 是否完成: ${dream.isCompleted}, 截止日期: ${dream.dueDate}, 优先级: ${dream.priority}")}}
}

run.....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/475303.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贴代码框架PasteForm特性介绍之select,selects,lselect和reload

简介 PasteForm是贴代码推出的 “新一代CRUD” &#xff0c;基于ABPvNext&#xff0c;目的是通过对Dto的特性的标注&#xff0c;从而实现管理端的统一UI&#xff0c;借助于配套的PasteBuilder代码生成器&#xff0c;你可以快速的为自己的项目构建后台管理端&#xff01;目前管…

麒麟网络负载均衡与高可用方案实践

安装 teamd 包。 yum -y install teamd Copy 一、配置TEAMING 查看两个网卡信息 ifconfig Copy 注意&#xff1a;根据实际网卡设备名称情况调整代码&#xff01;不同环境下网卡名称略有不同&#xff01; 根据查询的结果&#xff0c;两张网卡设备名称分别为 enp0s2 和 enp…

Python学习29天

二分查找 # 定义函数冒泡排序法从大到小排列 def bbble_sort(list):# i控制排序次数for i in range(len(list) - 1):# j控制每次排序比较次数for j in range(len(list) - 1 - i):if list[j] < list[j 1]:list[j], list[j 1] list[j 1], list[j] # 定义二分查找函数 def…

路由协议——iBGP与EBGP

一、适用场景 1、企业需要连接总部与分部&#xff0c;但总部与分部运行着不同的路由协议&#xff0c;总部到分部有自建的专线&#xff0c;端到端的设备支持BGP路由协议。 2、网络运营商&#xff0c;如电信、联通、移动等&#xff0c;各区域的ip路由表庞大&#xff0c;若要完成…

09.事件风暴

学习视频来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 概念组成部分具体场景事件风暴寻找聚合 改进具体流程 参考 概念 事件风暴是Alberto Brandolini 发明的一种头脑风暴方法&#x…

蓝队技能-应急响应篇日志自动采集日志自动查看日志自动化分析Web安全内网攻防工具项目

知识点&#xff1a; 1、应急响应-系统日志收集-项目工具 2、应急响应-系统日志查看-项目工具 3、应急响应-日志自动分析-项目工具 演示案例-蓝队技能-工具项目-自动日志采集&自动日志查看&自动日志分析 系统日志自动采集-观星应急工具(Windows系统日志) SglabIr_Co…

【C++】绘制内存管理的地图

生活是属于每个人自己的感受&#xff0c;不属于任何人的看法。 前言 这是我自己学习C的第二篇博客总结。后期我会继续把C学习笔记开源至博客上。 上一期笔记是关于C的类与对象础知识&#xff0c;没看的同学可以过去看看&#xff1a; 【C】面向对象编程的艺术之旅-CSDN博客https…

在 CentOS 系统上直接安装 MongoDB 4.0.25

文章目录 步骤 1&#xff1a;配置 MongoDB 官方源步骤 2&#xff1a;安装 MongoDB步骤 3&#xff1a;启动 MongoDB 服务步骤 4&#xff1a;验证安装步骤 5&#xff1a;可选配置注意事项 以下是在 CentOS 系统上直接安装 MongoDB 4.0.25 的详细步骤&#xff1a; 步骤 1&#x…

core 不可变类型 线程安全 record

当一个类型的对象在创建时被指定状态后&#xff0c;就不会再变化的对象&#xff0c;我们称之为不可变类型。这种类型是线程安全的&#xff0c;不需要进行线程同步&#xff0c;非常适合并行计算的数据共享。它减少了更新对象会引起各种bug的风险&#xff0c;更为安全。 System.D…

OceanBase Shell开放内核运维接口,运维更便捷

DBA在日常业务中面临着繁琐的运维管理任务&#xff0c;亟需高效的工具和灵活的解决方案帮助他们简化操作、提升效率。因此&#xff0c;命令行操作和维护工具&#xff08;CLI工具&#xff09;&#xff0c;因其高效、灵活、可远程管理以及技术深度等特点&#xff0c;成为DBA和开发…

基于Amazon Bedrock:一站式多模态数据处理新体验

目录 引言 关于Amazon Bedrock 基础模型体验 1、进入环境 2、发现模型及快速体验 3、打开 Amazon Bedrock 控制台 4、通过 Playgrounds 体验模型 &#xff08;1&#xff09;文本生成 &#xff08;2&#xff09;图片生成 关于资源清理 结束语 引言 在云计算和人工智能…

go 学习网站,go例子 go demo go学习视频

1. 代码例子&#xff1a; Go by Example 2. b站 视频&#xff1a; 尚硅谷视频&#xff1a; 004_尚硅谷_程序的基本概念_哔哩哔哩_bilibili 3. go技术文档&#xff1a; fmt Go语言中文文档

Django基础配置

一.前言 前面我们说完了前端基础&#xff0c;现在我们开始讲后端框架了&#xff0c;我们今天说的是django&#xff0c;当然今天主要还是和大家了解一下框架和django的基础配置 二.web框架 2.1 web框架初始 在我们学习web框架的时候&#xff0c;我们首先得了解到web框架的本…

Hive分桶超详细!!!

1、分桶的意义 数据分区可能导致有些分区,数据过多&#xff0c;有些分区,数据极少。分桶是将数据集分解为若干部分(数据文件)的另一种技术。 分区和分桶其实都是对数据更细粒度的管理。当单个分区或者表中的数据越来越大&#xff0c;分区不能细粒度的划分数据时&#xff0c;我…

【AI大模型引领变革】探索AI如何重塑软件开发流程与未来趋势

文章目录 每日一句正能量前言流程与模式介绍【传统软件开发 VS AI参与的软件开发】一、传统软件开发流程与模式二、AI参与的软件开发流程与模式三、AI带来的不同之处 结论 AI在软件开发流程中的优势、挑战及应对策略AI在软件开发流程中的优势面临的挑战及应对策略 结论 后记 每…

根据条件 控制layui的table的toolbar的按钮 显示和不显示

部分代码&#xff1a; <!-----查询条件-----> <input type"date" id"StartDate" onchange"PageList()" /> <input type"date" id"EndDate" onchange"PageList()" /><!-----表格Table-----&…

uniApp项目运行到鸿蒙手机,应用图标一直是H,应用名一直是HBuilder问题

项目运行到鸿蒙手机&#xff0c;应用图标一直是H,应用名一直是HBuilder问题 应用运行到鸿蒙手机和鸿蒙模拟器&#xff0c;应用图标一直是H,应用名一直是HBuilder&#xff0c;在自动生成的harmony-configs文件夹下也没有配置的文件&#xff0c; 这时候需要你将DevEco Studio 下…

使用element-plus el-table中使用el-image层级冲突table表格会覆盖预览的图片等问题

在日常开发项目中 使用element-plus 中表格中使用 el-image的点击图片出现图片预览 会出现以下问题 表格一行会覆盖预览的图片 鼠标滑过也会显示表格 el-image 的预览层级和表格的层级冲突导致的。 解决方法&#xff1a;有两种一种是直接使用样式穿透 第二种推荐方法 使用官网推…

vue--响应式数据

1、建一个vue应用程序&#xff08;简约&#xff09; 引入外链式 <title>第一个Vue程序</title><script src"../vue.global.js"></script> </head> {{}}插值表达式 <body><!-- {{ }} 插值表达式, 可以将 Vue 实例中定义的…

Flutter:photo_view图片预览功能

导入SDK photo_view: ^0.15.0单张图片预览&#xff0c;支持放大缩小 import package:flutter/material.dart; import package:photo_view/photo_view.dart;... ...class _MyHomePageState extends State<MyHomePage>{overrideWidget build(BuildContext context) {return…