Scala中List与Tuple

使用Scala的List和Tuple进行编程实例 Scala是一种功能强大的编程语言,它结合了面向对象编程和函数式编程的特性。在Scala中,List和Tuple是常用的数据结构,可以在后端编程中发挥重要作用。本文将介绍如何使用List和Tuple进行编程,并提供相应的Scala源代码示例。 阅读详情


一、List集合用法

/** * Scala的LiSt包装了很多有用的方法,但是不支持append, * 因为随着列表变长append的耗时也会变得很长,而使用 :: 做前缀添加列表只会耗费很短的时间。 */// 创建一个空的Listval nil = Nilval nil2 = List() // 第二种方式​// 创建带有三个值的List[String]val res = List("cool", "tools", "rule")​// 第二种方式 该方法最后必须加 Nil 通过Nil调用 :: 方法进行添加val thrill = "cool" :: "tools" :: "rule" :: Nil​// 打印出 thrill 列表中索引为1的元素println(thrill(1))​// 返回thrill列表中长度为4的元素个数thrill.count(th => th.length == 4)​// 返回去掉前2个元素的列表val dropThrill = thrill.drop(2)​// 返回去掉后2个元素的列表,dropRight方法从列表末尾开始移除元素val dropRightThrill = thrill.dropRight(2)​// 返回根据条件过滤后的列表val dropWhileThrill = thrill.dropWhile(th => th.length == 2)​// 判断列表中是否包含 cool 元素,返回boolean类型println(thrill.exists(th => th.contains("cool")))​// 返回列表中长度为4的所有元素val filterThrill = thrill.filter(th => th.length == 4)​// 判断列表中所有元素是否都是以c开头println(thrill.forall(th => th.startsWith("c")))​// 遍历列表中所有元素thrill.foreach(th => println(th))// 方式二thrill.foreach(println(_))// 方式三thrill.foreach(println)​// 返回列表中第一个元素println(thrill.head)​// 返回列表中最后一个元素println(thrill.last)​// 返回列表中除最后一个元素的其他所有元素val initThrill = thrill.init​// 判断列表是否为空println(thrill.isEmpty)​// 返回列表长度println(thrill.length)​// 返回原列表中每个元素追加了 xx 字符串的新元素列表val mapThrill = thrill.map(th => th + "xx")​// 返回用 , 分割的字符串val strThrill = thrill.mkString(",")​// 返回列表中逆序的新列表val reverseThrill = thrill.reverse​// 返回列表中前两个元素构成的新列表val takeThrill = thrill.take(2)​// 返回列表中最后两个元素构成的新列表val takeRightThrill = thrill.takeRight(2)​// 返回元素长度为4的所有元素构成的新列表val takeWhileThrill = thrill.takeWhile(th => th.length == 4)​// 返回除第一个元素的其他所有元素构成的新列表val tailThrill = thrill.tail

 

二、Tuple元组用法

/** * 与列表一样,tuple也是不可变的,但是与列表不同,tuple可以包含不同类型的元素。 * 列表应该是List[Int] / List[String] ,而元组可以同时拥有Int和String, * 元组的实际类型取决于它包含的元素数量和这些元素的类型, */// 该元组类型为 Tuple2[Int,String]val pair = (100, "Luftballons")println(pair._1)println(pair._2)println(pair.swap) // 交换元素,只有当元组中只包含2个元素时有用// 该元组类型为 Tuple6[Char, Char, String, Int, String]val res2 = ('u', 'r', "the", 1, "me")​// 元组遍历val iterator = res2.productIteratoriterator.foreach(println(_))​// 注意理论上元组可以创建任意长度的元素,但是目前scala只支持到Tuple22, 最后只会包含22个元素。

 

 

​

COCOS 3.8 接入高德定位SDK /微信登录所必须的code。//是否获得code。 阅读详情

相关推荐

云模型在综合评价过程中的应用

目录 1 云模型标尺(标准云模型)的构建方法 1.1 通过正态云的“3En 规则”来表示评价论域 1.2 通过论域的边界值隶属度相等来表示评价论域 1.3 通过黄金分割法来表示评价论域 2 确定评价结果的过程 2.1 基本云发生器 2.2 X条件云发生器 2.3 两种方法的区别 综合评价问题一般分为以下六个步骤 1、明确评价目的; 2、确定被评价对象; 3、建立评价指标体系(包括收集评价指标的原始值、评价指标的若干预处理等); 4、确立与各项评价指标相对应的权重系数; 5、选..

weixin_62223576的博客 1万+

【Scala入门】掌握Scala集合:列表、数组与集合操作

集合(Collection)在编程中扮演着至关重要的角色。Scala 提供了丰富且强大的集合库,支持多种集合类型和操作。本文将介绍 Scala 中的常用集合类型,包括列表(List)、数组(Array)以及其他集合类型,并详细讲解如何操作这些集合。

weixin_52938153的博客 1126

别只当玩具!聊聊这个555金属探测器电路背后的电磁感应与RLC调谐原理

本文深入解析了555金属探测器电路的工作原理,重点探讨了电磁感应与RLC调谐原理。通过分析电感线圈的电磁特性、RLC谐振电路的行为以及555定时器的多重功能,揭示了这一看似简单的装置如何实现金属检测。文章还提供了灵敏度优化方案和常见问题解决方法,帮助读者从科学角度理解这一实用技术。

weixin_29204205的博客 477

【大数据开发】scala——tuple、list(含高阶方法)、wordcount案例、set、并行处理数据和sorted、sortBy、sortWith的区别

一、元组 1.1元组的定义、遍历 object _01_Tuple { def main(args: Array[String]): Unit = { // 元组 // 1. 定义一个元组 val tuple: (String, String, Int, Double, Int) = ("Lily", "female", 100, 173.5, 65) // 2. 获取元组中的元素 println(tuple._1)

白色风车 1095

麒麟KylinV10系统yum源更换全攻略:从官方源到第三方仓库的保姆级教程

本文详细介绍了麒麟KylinV10系统yum源的更换与优化方法,包括官方源配置、第三方仓库集成及RPM包管理技巧。通过实战案例和命令示例,帮助用户快速解决软件依赖问题,提升系统管理效率。特别适合需要在国产操作系统上进行开发的工程师参考。

weixin_30752699的博客 647

Halcon Camera-calibration 相关算子(一)

Halcon Camera-calibration 相关算子介绍

qq_44744164的博客 1366

Scala集合——元组Tuple、列表List、集合Set、队列Queue、映射Map

一、元组tuple 元组(tuple)类似Java中的集合,可以放入不同类型的数据,元组最多存放22个数据 把无关的对象变成一个整体 例如:val t1:(String,Int,Double,boolean) = ("abc",123,23.6,true),这个元素的类型就是(String,Int,Double,boolean) //元组 object TupleDemo1 { ...

攻城狮Kevin 2517

RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)

本文记录的是利用中的模块优化的目标检测网络模型。通过局部特征提取器、周围环境提取器、联合特征提取器和全局环境提取器来提取局部特征、周围环境和全局环境信息,充分利用不同层次的信息。本文将其应用到中,并进行二次创新,使网络能够更好的处理多类别目标的分类能力。CGNet: A Light-Weight Context Guided Network for Semantic Segmentation1️⃣ 首先通过局部特征提取器floc(∗)floc(*)floc(∗)和周围环境提取器fsur(∗)f_{sur }

Limiiiing的博客 1349

Scala 中Array,List,Tuple的区别

Scala 中Array,List,Tuple的区别

dai451954706的专栏 8075

使用自己的数据跑通mmsegmentation

使用自己的数据跑通mmsegmentation,解决以下报错:1)type object 'FileClient' has no attribute 'infer_client' 2)It is expected output_size equals to 2, but got size 3 3)训练测试结果报NAN 4)KeyError: 'MyDataset is not in the dataset registry' 5)预训练模型和加载的网络结构层名有差异,unexpected key .....

猫猫与橙子的博客 1656

C语言使用开源库libusb进行USB设备操作

https://libusb.info/libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware. It is portable: Using a single cross-platform AP

m0_60352504的博客 1554

Scala这一路 之 高级语法3-List、Iterator、Set、Map、元组Tuple

摘要:Scala Collection 提供了一系列集合类型,这些类型又分为可变的与不可变的。可变集合大家可以随意去做增删改集合中的元素,对于不可变集合大家也可以去做增删改,但是每一种操作后都会返回一个新的集合,之前的集合是不会改变的。不过在纯函数式程序是不会使用可变变量的。使用可变变量多加小心! 官网链接:https://www.scala-lang.org/api/current/?_ga=...

人人都是程序员 1173

Unity零基础到进阶 ☀️| Unity中的 GC及优化 超级全面解析 ☆(ゝω・)v 建议收藏!

介绍: 在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。 本文我们主要学习垃圾回收的机制,垃圾回收如何被触发以及如何提GC收效率来提高游戏的性能。 Unity内存管理机制简介 要想了解垃圾回收如何工作以及何时被

努力前行,总会成为自己心中的那道光 6万+

Scala-LIST/Tuple/Map

Scala-LIST/Tuple/Map

zlcd1988的专栏 1511

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Scala趣味题之List与Tuple结合使用

题目 将如下数据(学生姓名/分数/科目)以元组封装,并添加到List中(10分) 姓名 分数 科目 张三 99 英语 张三 87 数学 张三 85 物理 赵六 58 英语 赵六 54 数学 循环list,打印出学生信息(10分) 求出所有学生的分数的合计(10分) 求出所有学生的平均分数(10分) 求出所有学生的最高分数(5分) 求出所有学生的...

syyyyyyyyyyyyyyh的博客 645

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

scala 模式匹配之Type、Array、List和Tuple

Scala 模式匹配之Type、Array、List和Tuple介绍。

残缺的孤独 2817

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Scala中的Array,List以及Tuple

初学,Scala中的Array,List以及TupleScala中支持Array,List,Tuple类型,都是不可变(Array可改变元素的内容,但Array不可变),但不同于Array和List,Tuple可以包含不同的数据类型,而Array或List内只能是相同的数据类型,如:val pair=(2,"a")同时,元组访问元素时,基于1的,并非基于0,而Array和List都是基于0的 但A

398

scala 关于Array,List,Tuple的区别

在Scala 2.7中,Array、List都不能混合类型,只有Tuple可以;而在Scala以上版本中,3者的元素都可以混合不同的类型(转化为Any类型),只不过是当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型; 关于Array,List,Tuple 关于初始化 1) val array= new Array[Stri

zkq_1986的博客 353

scala中Array、List、Tuple异同

scala中Array、List、Tuple异同 https://blog.youkuaiyun.com/baidu_35570545/article/details/77893421 2017年09月08日 13:12:59 水yu月 阅读数:422 标签: scala 更多 个人分类: scala 版权声明:欢迎转载,转载请注明出处! https://blog.youkuaiyun.com/baidu_355...

u011495642的博客 386

Scala中Array、List和Tuple三者差别

Scala中的三种集合类型包含:Array,List,Tuple、 相同点: 长度都是固定的 不同点: Array中的元素值可变,List和Tuple中的元素值不可变。 Array和List中的元素类型必须相同,Tuple可以存放不同的元素类型。 Array通常是先定长度后赋值,而List和Tuple在声明的时候就要赋值。 Array取单个元素的复杂度是O(1)。而List读取单个元素的复杂...

边看边学 1158

Scala 中Array,List,Tuple的差别

               尽管学了一段时间的Scala了,可是总认为基础不是太扎实,还有非常多的基础知识比較模糊。于是近期又打算又一次学习基础.     Scala中的三种集合类型包含:Array,List,Tuple.那么究竟这三种有哪些异同呢?说实话,我之前一直没弄明确,所以今天特意花了点时间学习了一下.     同样点:      1.长度都是固定的,不可变长    ...

weixin_34221112的博客 244

初学,Scala中的tuple,List,Array比较

Scala中支持Array,List,Tuple类型,都是不可变(Array可改变元素的内容,但Array不可变),但不同于Array和List,Tuple可以包含不同的数据类型,而Array或List内只能是相同的数据类型,如: val pair=(2,"a") 同时,元组访问元素时,基于1的,并非基于0,而Array和List都是基于0的 但Array可改变元素内容,如: val a=

198

[Scala]集合中List元素转Tuple元素的函数迭代写法

____ 本文链接: https://www.cnblogs.com/senwren/p/Scala-Lis-2-Tuple.html —— Scala没有提供相应写法, 但迭代写法仍然可以做到。 有两种写法 1: object Xxx extends App{ val res = List(List("a", 2), List("c", ...

weixin_30872671的博客 652
上一篇: Scala基础介绍
下一篇: Scala中Map与集合
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值