首页 > 其他分享 >Scala数据结构简单介绍

Scala数据结构简单介绍

时间:2024-09-30 12:21:32浏览次数:12  
标签:Map Set val Scala Int List 数组 简单 数据结构

数据结构的定义:

 1.数组(Array)

        (1)定义:

        定长数组:new Array[T](数组长度)

        变长数组:ArrayBuffer[T]()

        (2)示例:

        定长数组:val arr1 = new Array[Int](3)

        变长数组(需提前导包):val arr2 = ArrayBuffer[Int]()

2.元组(Tuple)

        (1)定义:

        val tuple = (元素,元素...)

        (2)示例:

        val tuple = (“BigData”,2015,45.0)

3.列表(List)

表现形式一:

//字符串
val fruit = “apples”::(“oranges”::(“pears”::Nil))
//整型
val nums = 1::(2::(3::(4::Nil)))
//空列表
val empty = Nil
//二维列表
val dim = (1::(0::(0::Nil)))::
          (0::(1::(0::Nil)))::
          (0::(0::(1::Nil)))::Nil

表现形式二:

//字符串
val fruit:List[String] = List(“apples”,”oranges”,”pears”)
//整型
val nums:List[Int] = List(1,2,3,4)
//空
val empty:List[Nothing] = List()
//二维列表
val dim:List[List[Int]] = 
      List(
      List(1,0,0),
      List(0,1,0),
      List(0,0,1)
)

4.集合(Set)

        (1)定义:

        val set:Set[Int] = Set(1,2,3,4,5)

        (2)示例:

        val nums:Set[Int] = Set()

5.映射(Map)

        (1)定义:

        var A:Map[Char,Int] = Map(键 -> 值,键 -> 值...)

        (2)示例:

        Var university = Map(“XMU” -> “Xiamen University”,”THU” -> “Tsinghua University”,”PKU” -> “Peking University”)

6.迭代器(Iterator)

        val iter = Iterator(“Hadoop”,”Spark”,”Scala”)

数据结构的对比:

        (1)数组(Array): 用来存储数据类型相同的元素,分为定长数组和变长数组,定义定长数组需要使用new关键字,定义变长数组需要导入包。

        (2)元组(Tuple): 是对不同类型对象的一种简单封装,它将不同的值用小括号括起来,并用逗号做分隔,即表示元组。在Scala中,可以通过使用zip命令将多个值绑定在一起。

        (3)列表(List): 列表的所有元素都具有相同类型,列表是不可变的。

        (4)集合(Set): Set是没有重复对象的集合,所有元素都是唯一的,有可变集合(使用时需要导入包)和不可变集合。

        (5)映射(Map): 一种可迭代的键值对结构,键是唯一的,值不是唯一的,所有值都是通过键来获取,有可变Map(可修改)和不可变Map(不可修改),使用可变Map时需要导入import scala.collection.mutable.Map类。

        (6)迭代器(Iterator): 是一次性的,通常只能遍历一次集合,一旦遍历完成,迭代器就不能再被使用。如果需要再次遍历,必须重新创建一个新的迭代器。

标签:Map,Set,val,Scala,Int,List,数组,简单,数据结构
From: https://blog.csdn.net/weixin_74304418/article/details/142654007

相关文章

  • label-studio的简单使用
    人工标注一、语义角色:Agent:实施动作的主体Action:谓语,动作Patient:承受动作的客体Time:发生动作的时间Location:发生动作的地点二、工具——labelstudio官方网址:OpenSourceDataLabeling|LabelStudio使用工具:labelstudio安装命令:pipinstalllabel-studio启动命令:label-studio访......
  • 大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(已更完)Druid(正在更新…)章节内容上节我们完成了如......
  • 实验1_C语言输入输出和简单程序应用编程
    任务1://打印一个字符小人#include<stdio.h>intmain(){printf("O\n");printf("<H>\n");printf("II\n");printf("O\n");printf("<H>\n");printf("II\n");r......
  • 数据结构:基本概念及术语
    一、基本概念        在数据结构中,有这样一些基本概念:数据、数据元素、数据项、数据对象,对于它们的具体含义我就不赘述了,在这就简要说明一下它们之间的关系:    首先,我们可以把数据看成一个大集合,那数据元素就相当于这个集合中的一个个元素,然后一些性质相同的......
  • 简单的XGBoost案例
    一、前言    今天我们来一起学习一个新的算法模型,XGboost算法:     1、XGBoost的特性        XGBoost(ExtremeGradientBoosting)是一个高效的开源机器学习库,广泛应用于结构化数据的分类和回归问题。它基于梯度提升算法,利用决策树的集成方法来提高模型的......
  • WPF下使用FreeRedis操作RedisStream实现简单的消息队列
    RedisStream简介RedisStream是随着5.0版本发布的一种新的Redis数据类型:高效消费者组:允许多个消费者组从同一数据流的不同部分消费数据,每个消费者组都能独立地处理消息,这样可以并行处理和提高效率。阻塞操作:消费者可以设置阻塞操作,这样它们会在流中有新数据添加时被唤醒并开始......
  • 97th 2024/8/26 树形数据结构小结
    精锐线段树\(\big/\)平衡树综合题目五步取首1、每个节点需要维护的信息有?可从题目要求的目标或经推导后得到的要求的目标得到如对于括号序列这一题,将"("转化为-1,")"转化为1后,要求的答案就变成了最大前缀和和最小后缀和然后就变成了平衡树板题(区间赋值,反转,翻转)2、需要的标记......
  • unity常见的两种简单易上手的移动方式
    第一,使用transform的translate进行移动。使用方法:对象.transform.translate(方向向量*normalized*Time.deltaTime*speed);normalized是将这个方向向量归一化,即模长等于1,这是为了控制速度等于后面的speed,如果不加也能够实现移动,但是速度不便于控制。Time.deltaTime是每一......
  • 【Redis基础篇】超详细♥Redis安装教程、5种常用数据结构和常见命令、Jedis和SpringDa
    文章目录一、Redis与客户端安装教程1、NoSQL介绍(1)结构化与非结构化(2)关联和非关联(3)查询方式(4)事务(5)总结2、Redis介绍3、安装Redis(1)依赖库(2)上传安装包并解压(3)Redis三种启动方式①默认启动②指定配置启动③开机自启4、Redis客户端(1)Redis命令行客户端(2)图形化桌面客户端(3......
  • 【玩转Linux】如何简单快速理解权限?
     学习编程就得循环渐进,扎实基础,勿在浮沙筑高台   循环渐进Forward-CSDN博客Hello,这里是kiki,今天更新Linux部分,我们继续来扩充我们的知识面,我希望能努力把抽象繁多的知识讲的生动又通俗易懂,今天要讲的是权限~目录 循环渐进Forward-CSDN博客shell命令以及运行......