25_Scala集合Tuple

news2024/12/23 1:43:36

文章目录

  • tuple
  • 1.元组定义
  • 2.Tuple元素访问
  • 3.如果元素的len=2,称之为键值对对象,也称之为对偶元组
  • 4.补充上节Map
  • 5.Map集合遍历
  • 6.集合之间相互转化

tuple

概念:scala语言采用特殊的方式将无关的数据作为一个整体,组合在一起’

1.元组定义

–Tuple3[Int,String,Boolean] 元组类型,3表示元素个数,后面[]装泛型
–关于数据类型 Tuple3[Int,String,Boolean]等价于(Int,String,Boolean)
–最大Tuple22 元素个数最多22个 函数式编程参数个数最多也是22个
–Tuple集合限制是数据的个数,不限制数据的类型;

//1.元组定义
val tuple: Tuple3[Int, String, Boolean] = (1, "asd", false)
val tuple1: (Int, String, Boolean) = (1, "asd", false)

2.Tuple元素访问

–没有循环操作,数据之间没有关系,没有相同的循环逻辑
–采用顺序号访问 tuple._1 访问第一个元素
–使用索引的方式访问 productElement(idx)

//    2.Tuple元素访问
println(tuple._1) //1
println(tuple._2) //asd
println(tuple._3) //false

在这里插入图片描述

3.如果元素的len=2,称之为键值对对象,也称之为对偶元组

–形式上和上结课map的键值对形式一样(“a”,1)

//    3.如果元素的len=2,称之为键值对对象,也称之为对偶元组
val t1 = ("a", 1)
val t2 = ("b", 2)

4.补充上节Map

Map定义可以使用键值对对象进行构建

//    4.Map定义可以使用键值对对象进行构建
    import scala.collection.mutable
    val map = mutable.Map(
      ("a",1),
      ("b",2),
      ("c",3)
    )
    println(map)//Map(b -> 2, a -> 1, c -> 3)

5.Map集合遍历

在这里插入图片描述

for (kv <- map){
  print(kv._1+"    ")    //打印元组第一个元素
  println(kv._2)
}

在这里插入图片描述

6.集合之间相互转化

Array,Seq,Set 任意转化直接使用toxxx()方法,想转化什么转化什么
–但是三者不能向Map转化,原因是没有键值对概念;

–Map可以向Array,Seq,Set转化,转化过程将键值对对象当作一个元素来看待;(“a”,1)作为一个元素

特殊情况,如果Array,Seq,Set的元素是对偶元组,那么可以向Map转化,不推荐

//    6.集合之间的转化
val ints = Array(1, 2, 3, 4)
val seq = ints.toSeq
val set = seq.toSet
val set1 = map.toSet
print(set1)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

综合性SCI期刊,中科院3区,IF=4+,征稿范围广泛!

一、期刊名称 Scientific Reports 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;综合性期刊 影响因子&#xff1a;4.6 中科院分区&#xff1a;3区 出版方式&#xff1a;开放出版 版面费&#xff1a;$2590 三、期刊征稿范围 期刊发表来自自然科学、心…

EXCEL——VLOOKUP函数

一、VLOOKUP函数的语法 VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]) lookup_value 需要在数据表首列进行搜索的值&#xff0c;可以是数值&#xff0c;引用或字符串 table_array 要在其中搜索数据的文字、数字或逻辑值表&#xff0c;可以是对区域或…

Day 41 343.整数拆分 96.不同的二叉搜索树

整数拆分 给定一个正整数 n&#xff0c;将其拆分为至少两个正整数的和&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: 10输出: 36解释: 10 3 3 4, 3 3 4 36。说明: 你可以假设 …

Vue3工程化配置

Vue3工程化配置 目录 Vue3工程化配置创建项目vue-clivite(推荐) 快速体验2和3的差别vue3vue2 ref和reactive 创建项目 vue-cli 具体环境配置请点这里 记得新建配置时这里选vue3 vite(推荐) 注&#xff1a;Vite 需要 Node.js 版本 18&#xff0c;20 1.选定路径后再cmd输入创建…

深度学习之基于Resnet50卷积神经网络脊柱骨折CT影像图片诊断系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 脊柱骨折是骨科中一种常见的损伤类型&#xff0c;准确的诊断对于患者的治疗和康复至关重要。传统的脊…

SPD1179 电路设计---汽车电机控制设计

概述 SPD1179 是旋智针对汽车应用推出的一颗高度集成的片上系统&#xff08;SOC&#xff09; 微控制器&#xff0c;内置 32 位高性能 ARMCortex-M4F 内核&#xff0c;最高 100MHz 的软件可编程时钟频率&#xff0c; 32KB SRAM&#xff0c; 128KB 嵌入式 FLASH&#xff0c; 1KB …

高级DBA教你达梦8国产数据库MergeInto批量插入并忽略主键重复报错特殊用法(达梦官方手册没有的内容)

高级DBA教你达梦8国产数据库MergeInto批量插入并忽略主键重复报错特殊用法&#xff08;达梦官方手册没有的内容&#xff09; 一、达梦8国产数据库简介 达梦 8 是一款由武汉达梦数据库有限公司基于 C/C语言开发的国产关系型数据库&#xff0c;有支持 X86 和 ARM 平台的版本&am…

【数据结构】 顺序表专题

目录 1.顺序表的概念及结构 1.1线性表 1.2顺序表 2.顺序表的分类 2.1静态顺序表 2.2动态顺序表 1.顺序表的概念及结构 1.1线性表 线性表&#xff08;Linear List&#xff09;是数据结构中的一种基本结构&#xff0c;它是一个具有n个数据元素的有限序列。线性表的特点是数…

triton之fused attention

附录 【BBuf的CUDA笔记】十五,OpenAI Triton入门笔记三 FusedAttention - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/684557290图解大模型计算加速系列:FlashAttention V1,从硬件到计算逻辑 - 知乎 (zhihu.com)

MongoDB(四):条件操作符

条件操作 1、概述2、比较操作2.1、大于操作符-$gt2.2、大于等于操作符-$gte2.3、小于——$lt2.4、小于等于——$lte2.5、范围查询 3、总结 大家好&#xff0c;我是欧阳方超&#xff0c;可以扫描下方二维码关注我的公众号“欧阳方超”&#xff0c;后续内容将在公众号首发。 1、…

架构师:搭建Spring Security、OAuth2和JWT 的安全认证框架

1、简述 Spring Security 是 Spring 生态系统中的一个强大的安全框架,用于实现身份验证和授权。结合 OAuth2 和 JWT 技术,可以构建一个安全可靠的认证体系,本文将介绍如何在 Spring Boot 中配置并使用这三种技术实现安全认证,并分析它们的优点。 2、Spring Security Spri…

国产开源数据库厂商介绍

前言 开源数据库即免费的社区数据库,其源代码可供公众使用,并且可以在其原始设计中进行修改或使用。开源数据库的流行示例包括MySQL,PostgreSQL和MongoDB。开源数据库用户托管数据库部署的方式有内部部署、公共云、混合云。3. 互联网背景下,市场向互联网、移动化、数字化新…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-14-主频和时钟配置

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

深入 YOLOv8:探索 block.py 中的模块,逐行代码分析(一)

深入 YOLOv8&#xff1a;探索 block.py 中的构建块 YOLOv8&#xff0c;作为最新和最先进的对象检测模型之一&#xff0c;其核心架构由多个精心设计的构建块组成。这些构建块在 block.py 文件中定义&#xff0c;它们共同构成了 YOLOv8 的骨架。在本文中&#xff0c;我们将深入探…

【Java EE】多线程(三)线程状态

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

面试笔记——垃圾回收

对象被垃圾回收的时机 垃圾回收主要面向的是堆中的对象。简单一句就是&#xff1a;如果一个或多个对象没有任何的引用指向它了&#xff0c;那么这个对象现在就是垃圾&#xff0c;如果定位了垃圾&#xff0c;则有可能会被垃圾回收器回收。 如果要定位什么是垃圾&#xff0c;有两…

做题速度太慢了,面不上

没办法&#xff0c;之前练了一个月的sql。两个月不写&#xff0c;现在差不多忘干净了。工作空窗期&#xff0c;或者休息期不能太久&#xff0c;不然学再多的内容都可能会忘完的。 sql题&#xff0c;腾讯四道sql题&#xff0c;限时45分钟完成。我只做了一道&#xff0c;还没做完…

自动控制原理MATLAB:控制系统模型构建

在MATLAB中&#xff0c;常用的系统建模方法有传递函数模型、零极点模型以及状态空间模型等。 1系统传递函数模型描述&#xff1a; 命令格式&#xff1a; systf(num,den,Ts); 其中&#xff0c;num、den为分子多项式降幂排列的系数向量,Ts表示采样时间&#xff0c;缺省时描述…

ppp和ppp mp理论实验

ppp简介 PPP&#xff08;点对点协议&#xff09;为在点对点连接上传输多协议数据包提供了一个标准方法&#xff0c;是数据链路层封装协议的一种方法&#xff0c;支持同步和异步两种传输方式。&#xff08;除了PPP还有HDLC等&#xff0c;不过HDLC只支持同步方式&#xff09; P…

语音识别之衡量声音之间的距离-理解DTW

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…