25_Scala集合Tuple

文章目录

  • 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.mutableval 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.mzph.cn/web/8021.shtml

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

相关文章

2024爆火的AI设备Rabbit R1到底是什么?有人说它是AI的iPhone时刻,有人说它是套壳的安卓

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

c++编程(10)——string

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 <string>string类的接口构造、析构、与赋值重载构造函数赋值重载运算符 元素访问operator[] 容量修改器对string对象的操作迭代器 std::string是定义在c标准的一个类&#xff0c;定义在标准库<strin…

Unity 性能优化之图片优化(八)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、可以提前和美术商量的事1.避免内存浪费&#xff08;UI图片&#xff0c;不是贴图&#xff09;2.提升图片性能 二、图片优化1.图片Max Size修改&#x…

龙兵知识付费系统开发,教育机构如何利用小程序引流?

时代进步的好处是人们需求也越来越多&#xff0c;家长要求孩子学习十八般武艺&#xff0c;唱歌绘画舞蹈钢琴一样不能落下&#xff0c;各种培训需求只增不减&#xff0c;培训机构当然也越来越多。针对小孩子的才艺培训、针对大学生的考研考证培训、针对在职人士的技能培训和企业…

Momentum靶机系列Momentum2

先进行arp扫描&#xff1a; 获得渗透靶机的IP&#xff1a;192.168.13.142 扫描一下靶机的使用的端口&#xff1a; 具有tcp端口和http服务的80端口 可以扫描一下80端口的http服务&#xff1a; 可以发现一个网站&#xff1a;http://192.168.13.142 打开该网址&#xff1a; 查看…

Flink 部署模式

目录 概述 部署模式 会话模式&#xff08;Session Mode&#xff09; 单作业模式(Per-Job Mode) 应用模式(Application Mode) 运行模式&#xff08;资源管理模式&#xff09; Standalone运行模式 会话模式部署 应用模式部署 Yarn运行模式 会话模式部署 单作业模式部…

鸿蒙开发核心技术都有哪些【都是从零开始】

鸿蒙开发核心技术都有哪些&#xff1f;&#xff1a;【持续1年的时间公关鸿蒙技术】 我们能做哪些呢&#xff1f; 还是从UI业务开始吧 面试题1&#xff1a; 基于STAGE模型项目重构等问题 代理设计模式&#xff0c;业务与架构隔离 中介者模式&#xff0c;和代理设计模式的区别…

在 Vue3 中使用 styled-components

前言 随着组件化时代的兴起&#xff0c;前端应用开始采用组件级别的 CSS 封装&#xff1a;通过 JavaScript 声明和抽象样式&#xff0c;以提高组件的可维护性。在组件加载时动态加载样式&#xff0c;并动态生成类名&#xff0c;从而避免全局污染。 styled-components 是其中的…

湖仓一体 - Apache Arrow的那些事

湖仓一体 - Apache Arrow的那些事 Arrow是高性能列式内存格式标准。它的优势&#xff1a;高效计算&#xff1a;所有列存的通用优势&#xff0c;CPU缓存友好、SIMD向量化计算友好等&#xff1b;零序列化/反序列化&#xff1a;arrow的任何数据结构都是一段连续的内存&#xff0c;…

uniapp使用iconfont

1、把这两个文件在项目的静态资源目录下 2、修改iconfont.css文件 3、最后在app.vue中引入

软件测试—— 接口测试之通讯流程相关概念

通讯流程 1、协议 通讯规则 2、HTTP协议 协议的一种 3、接口规范文档 如何发请求的要求文档&#xff0c;获取什么响应内容的说明文档&#xff08;相当于菜单&#xff09;

Boost.Preprocessor库

Boost.Preprocessor库是Boost C库的一部分&#xff0c;提供了一组扩展的预处理器元编程功能。这个库的主要目的是帮助开发者使用预处理器进行元编程&#xff0c;以及提供一组工具来操纵预处理阶段的文本。 预处理器在C编译过程中的角色主要是处理源代码文件中的预处理指令&…

AI换脸免费软件Rope中文汉化蓝宝石版本全新UI界面,修复部分已知错误【附下载地址与详细使用教程】

rope蓝宝石版&#xff1a;点击下载 注意&#xff1a;此版本支持N卡、A卡、CPU&#xff0c;且建议使用中高端显卡&#xff0c;系统要求win10及以上。 Rope-蓝宝石 更新内容&#xff1a; 0214版更新&#xff1a; ①&#xff08;已修复&#xff09;恢复到以前的模型荷载参数。有…

IEEE 754浮点数十六进制相互转换 (32位 四字节 单精度)

IEEE 754浮点数十六进制相互转换 &#xff08;32位 四字节 单精度&#xff09; 常用方法 1. 使用联合体&#xff08;Union&#xff09; 通过定义一个联合体&#xff0c;其中包含一个float类型和一个unsigned char类型的数组&#xff0c;可以实现四个字节到浮点数的转换。 #…

课时118:awk实践_基础实践_基础语法

1.1.2 基础语法 学习目标 这一节&#xff0c;我们从 信息查看、定制查看、小结 三个方面来学习 信息查看 字段提取 字段提取:提取一个文本中的一列数据并打印输出&#xff0c;它提供了相关的内置变量。$0 表示整行文本$1 表示文本行中的第一个数据字段$2 表示文本行中的第…

Python中GDAL批量将多个遥感影像各波段数值缩小10000倍的方法

本文介绍基于Python中的gdal模块&#xff0c;批量读取大量多波段遥感影像文件&#xff0c;分别对各波段数据加以数值处理&#xff0c;并将所得处理后数据保存为新的遥感影像文件的方法。 首先&#xff0c;看一下本文的具体需求。我们现有一个文件夹&#xff0c;其中含有大量.ti…

OceanBase 如何实现多层面的资源隔离

OceanBase的资源隔离涵盖了多个方面&#xff0c;如物理机器间的隔离、不同租户之间的隔离、同一租户内的隔离&#xff0c;以及针对大型查询请求的隔离等。在实际应用OceanBase的过程中&#xff0c;我们经常会遇到这些操作场景或产生相关需求。这篇文章针对这些内容进行了简要的…

代码随想录leetcode200题之栈与队列

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题中栈与队列部分的题目。 2 训练 题目1&#xff1a;232. 用栈实现队列 C代码如下&#xff0c; #include <stack>class MyQueue { private:stack<int> a;stack<int> b; //辅助栈 pu…

软件测试--接口测试

接口测试&#xff1a;直接对后端服务的测试&#xff0c;是服务端性能测试的基础 接口&#xff1a;系统之间数据交互的通道 接口测试&#xff1a;校验接口响应数据与预期数据是否一致

docker私有仓库部署与管理

一、搭建本地公有仓库 1.1 首先下载registry镜像 docker pull registry 1.2 在daemon.json文件中添加私有镜像仓库地址并重新启动docker服务 vim /etc/docker/daemon.json 1.3 运行registry容器 docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restartal…