Scala_入门笔记_List

Scala中使用ListBuffer高效遍历List 在Scala中,使用ListBuffer高效遍历List。 阅读详情

List
Scala的list与Java集合框架中的list也非常相似。
定义
整型列表

val nums: List[Int] = List(1, 2, 3, 4)

二维列表

val dim: List[List[Int]] =
    List(
        List(1,0,0),
        List(0,1,0),
        List(0,0,1)
        )

空列表

val empty = Nil 

列表的三个基本操作

  • head 返回列表第一个元素
  • tail 返回一个列表,包含除了第一元素之外的其他元素
  • isEmpty 在列表为空时返回true

栗子

val site:List[String] =List("google","baidu","sougou")
val nums = Nil
println( "第一网站是 : " + site.head )
println( "最后一个网站是 : " + site.tail )
println( "查看列表 site 是否为空 : " + site.isEmpty )
println( "查看 nums 是否为空 : " + nums.isEmpty )

以上代码输出结果

第一网站是 : google
最后一个网站是 : List(baidu, sougou)
查看列表 site 是否为空 : false
查看 nums 是否为空 : true

List常用方法
一、列表操作

List.concat()  //连接两个或多个列表
List.reverse  //将列表的顺序反转
def sorted[B >: A]: List[A]  //列表排序
def distinct: List[A]  //去除列表的重复元素,并返回新列表
def drop(n: Int): List[A]  //丢弃前n个元素,并返回新列表
def dropWhile(p: (A) => Boolean): List[A]  //从左向右丢弃元素,直到条件p不成立
def equals(that: Any): Boolean  //判断是否相等
def exists(p: (A) => Boolean): Boolean  //判断列表中是否存在某个元素
def isEmpty: Boolean   //检测列表是否为空
def map[B](f: (A) => B): List[B]  //通过给定的方法将所有元素重新计算

二、元素操作

List.fill()  //创建一个指定重复数量的元素列表
def ::(x: A): List[A]  //在列表开头添加元素,亦可以直接只用+=添加元素
def addString  (b:StringBuilder,sep:String):StringBuilder  //将列表的所有元素添加到 StringBuilder,并指定分隔符
def contains(elem: Any): Boolean  //检测列表中是否包含指定的元素
def endsWith[B](that: Seq[B]): Boolean  //检测列表是否以指定序列结尾所以还有startsWith();
def foreach(f: (A) => Unit): Unit  //遍历列表的所有元素
def indexOf(elem: A, from: Int): Int  //从指定位置 from 开始查找元素第一次出现的位置,所以有lastIndexOf
take(n:Int)  提取前n个元素,相反有takeRight,提取后n个元素

三、列表计算

def length: Int  //返回列表长度
def max: A  //查找最大元素
def min: A  //查找最小元素
def sum: A  //计算集合元素之和

四、转为其他

def mkString: String  //列表所有元素作为字符串显示
def mkString(sep: String): String  //使用分隔符将列表所有元素作为字符串显示
def toMap[T, U]: Map[T, U]  //List 转换为 Map
def toSeq: Seq[A]  //List 转换为 Seq
def toSet[B >: A]: Set[B]  //List 转换为 Set
def toString(): String  //列表转换为字符串
ARCGIS绘制全国各省PM2.5浓度图操作步骤 ArcGIS新手小白一枚,经常需要帮助老师绘制一些简单的空间图,利用ArcGIS绘制全国各省的pm2.5浓度图,简单又方便,不记下来会忘记~ 阅读详情

相关推荐

Matlab双目相机标定

1 概述 现在有许多双目相机在出厂时就已经标定好了,用户拿到手后可以直接使用,例如Intel Realsense系列。但是有些相机出厂的时候并没有完成标定工作,因而这个时候就需要我们自己来标定。由于笔者曾改装过一个双目相机,最远可以测至50m,因此有一定的心得体会想给大家分享一下。本文主要介绍双目相机标定的整个过程,以及导出标定数据的方法。 相机标定主要分为手动标定和自动标定,手动标定比较繁琐,这里主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。具体的相关标定细节也可以参照这篇博客:m

weixin_46133643的博客 2万+

scala-计算两个GPS坐标的距离

class point{   var lng:Double=0   var lat:Double=0   def point(x:Double,y:Double)   {     lng=x     lat=y   } } object PointDistance {   private val  EARTHRADIUS = 6370996.81;   private va

u011926899的专栏 2194

手把手教你用AirSim生成无人机训练数据集:RGB/深度图/分割图全攻略

本文详细介绍了如何使用AirSim仿真插件在UE4环境中生成无人机训练数据集,涵盖RGB、深度图和分割图等多种模态数据的采集与处理。通过实战指南,读者可以掌握环境配置、多模态数据采集、自动化流程设计及数据后处理等关键技术,为无人机视觉算法开发提供高质量训练数据。

weixin_29008805的博客 448

Scala(2)-类

定义一个类 构造器 私有成员和GetterSetterScala是面向对象的语言。类是创建对象的模板。定义一个类最简单的类定义只有一个class 关键字和一个表示类名的标识符。类名首字母要大写。class Userval user1 = new User关键字new用于创建类的一个对象。上面例子中,因为没有特意定义一个构造器,所以User类有个不含参数的默认构造器。 下面我们再看一个比较完整的类的

RisingSunny的专栏 397

头歌MySQL数据库实训答案 有目录

头歌java实训答案集数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。 第1关:创建数据库 第2关创建表 第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 MySQL数据库 - 数据库和表的基本操作(一) 第1关:查看表结构与修改表名 第2关:修改字段名与字段数据类型 第3关:添加与删除字段 第4关:修改字段的排列位置 第5关:删除表的外键约束 MySQL数据库 - 数据库和表的基本操作(二) 第1关:插入数据 第2关:更新数据 第3关:删除数据 MySQL数据库 - 单表查询(

m0_67401761的博客 4万+

Coze智能体开发:开始使用扣子

扣子全新升级!它不仅能帮你办公、做视频、写代码,更具备自主任务执行、探索进化等能力,真正从“陪你聊”走向“帮你干活”。

王国平的博客 120

scala之list用法史上最全

Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是 下面是list的常用方法,当然了这不是所有的.但都是最常用的.具体看下面的demo.具体可以看代码里面的注释 package test object listDemo { def main(args: Array[S...

JasonLee实时计算 1万+

ABAP Reduced Message Types:用精简 IDoc + Change Pointer,把主数据分发做得又快又省

本文介绍了SAP系统集成中主数据分发的精简优化方法。通过创建"精简消息类型"(Reduced Message Types),可以在不改标准IDoc类型的前提下,只发送接收系统真正需要的数据。文章详细解析了主数据变更链路的完整流程,包括变更文档、变更指针和IDoc生成机制,并重点说明了如何在BD53事务中创建精简消息类型、选择保留字段、激活变更指针等实操步骤。此外,还介绍了通过BD59过滤对象和BD64分发模型实现更精确的数据分发,以及变更指针的激活验证、IDoc生成作业和定期清理等运维要

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 132

scala 定义空的list_Scala入门学习笔记四--List使用

前言本篇将介绍一个和Array很相似的集合List,更多内容请参考:Scala教程本篇知识点概括List的构造List与Array的区别List的常用方法List伴生对象的方法::和:::操作符的介绍Scala中使用ListScala是函数式风格与面向对象共存的编程语言,方法不应该有副作用是函数风格编程的一个重要的理念。方法唯一的效果应该是计算并返回值,用这种方式工作的好处就是方法之间很少纠缠在一...

weixin_39759107的博客 543

手把手教你学 Simulink (1.3)--Simulink 的模块库及其模块介绍

Simulink 提供了丰富的模块库,涵盖了从基本的信号生成和处理到复杂的数学运算和系统建模的各种功能。通过熟悉这些模块库及其模块,你可以更高效地构建和仿真动态系统。

MHD0815的博客 5150

大数据分析利器:Tableau实战教程从入门到精通

你有3家分店,每月收集1000条销售数据(日期、分店、口味、销售额、订单数);想用Excel分析“哪家分店最赚钱”,但要做透视表→改格式→画柱状图,耗时30分钟,还经常因为公式错误返工;想看看“草莓味奶茶的月度销量趋势”,得手动筛选数据、调整折线图轴范围,稍不注意就漏看关键节点;想把分析结果分享给合伙人,Excel表格太抽象,对方盯着数字问“你到底想告诉我什么?

AI架构师小马 1490

Scala入门学习笔记【list练习题】

Scala入门学习笔记【list练习题】

freefish_yzx的博客 1293

【OpenFOAM】-olaFlow-算例10-wavemakerTank

采用 Flap和Piston两种方式的动网格进行造波

ou_no的博客 2167

Scala入门学习笔记四--List使用

前言 本篇将介绍一个和Array很相似的集合List,更多内容请参考:Scala教程 本篇知识点概括 List的构造List与Array的区别List的常用方法List伴生对象的方法::和:::操作符的介绍 Scala中使用List Scala是函数式风格与面向对象共存的编程语言,方法不应该有副作用是函数风格编程的一个重要的理念。方法唯一的效果应该是计算并返回

chenjieit619的博客 477

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

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

Scala 之 List 与 ListBuffer 入门

Scala的List Scala 中的 List 和 Java List 不一样,在 Java 中 List 是一个接口,真正存放数据是 ArrayList,而 Scala 的 List 可以直接存放数据,就是一个object,默认情况下 Scala 的 List 是不可变的,List 属于序列 Seq. val List = scala.collection.immutable.List obj...

李昊轩的博客 4445

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

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

快速入门Scala⑥ 对List表操作

不可变列表 列表是scala中最重要的、也是最常用的数据结构 可以保存重复值 有先后顺序 在scala中,也有两种列表,一种是不可变列表、另一种是可变列表 定义 不可变列表就是列表的元素、长度都是可变的。 语法: var/val 变量名=List(元素1,元素2,元素3...) 使用Nil创建一个不可的空列表 var/val 变量名=Nil 使用::方法创建一个不可变的列表 var...

大数据记录 9741

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Scala入门到精通——第三节 Array、List

本节主要内容 数组操作实战 列表List操作实战 数组操作实战1 定长数组//定义一个长度为10的数值数组 scala> val numberArray=new Array[Int](10) numberArray: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) //定义一个长度为10的String类型数组 scala> val strArray=

摇摆少年梦的技术博客 4万+

【Scala入门】Scala中的List有序可重复集合:列表List基本使用

package com.fuyun.bigdata.scala.collection import scala.collection.mutable.ListBuffer /** * List有序可重复集合:列表List基本使用 */ object ListDemo { def main(args: Array[String]): Unit = { // 创建空列表 ...

fuyun6363的博客 1823

scala 定义空的list_Scala入门之List使用详解

Scala中使用ListScala是函数式风格与面向对象共存的编程语言,方法不应该有副作用是函数风格编程的一个重要的理念。方法唯一的效果应该是计算并返回值,用这种方式工作的好处就是方法之间很少纠缠在一起,因此就更加可靠和可重用。另一个好处(静态类型语言)是传入传出方法的所有东西都被类型检查器检查,因此逻辑错误会更有可能把自己表现为类型错误。把这个函数式编程的哲学应用到对象世界里以为着使对象不可变。...

weixin_39836536的博客 993

scala中List的常见操作

参考自:https://blog.youkuaiyun.com/xianpanjia4616/article/details/84930779 https://blog.youkuaiyun.com/hguo11/article/details/81585158 Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)...

tanlangqie的博客 9591

Scala之List

List

m0_73450879的博客 1350

scala之list

2.1 List基本介绍 Scala中的List 和Java List 不一样,在Java中List是一个接口,真正存放数据是ArrayList,而Scala的List可以直接存放数据,就是一个object,默认情况下Scala的List是不可变的,List属于序列Seq。 val List = scala.collection.immutable.List object List extends SeqFactory[List] 2.2 创建List的应用案例 v

qq_41458071的博客 950

Scala:Scala的List

例如,定义一个Stream,Stream(1,2,3)等价于1#::2#::3::Stream.empty。左折叠运算由初始值、操作符、List 和操作组成,即(z/:List)(op)等价于op(op(op(z,a),b),c)。例如 List(1,2)=11,List(3,4)=12,结合这两个集合可以使用11:::12=(1,2,3,4)。右折叠是 List 在前,即(List(a,b,e):lz)(op)等价于op(a,p(b,op(c,z)))。的集合,无论大小还是元素,都是不可变的。

2402_87106544的博客 857

Scala day3(Array and List)

【代码】Scala day3(Array and List)

Forerunner and Successor 先駆者と後継者 1027

scala List入门到熟悉

List属于scala集合体系,可以分为可变List以及不可变List 列表的定义 //定义List scala> val list=List("apple","banan","pear") list: List[String] = List(apple, banan, pear) //定义空List scala> val empty=List() empty: List[Nothing] = List() //定义空List的另一种方式 scala> val a=Nil a: scala

鸭梨的博客 366

scala的List

A.可变的List 叫ListBuFTer;B.Lisl的无来还是可以通讨下标来修改的。C.使用ListBurrer需要提前导入对于的包;D.默认的List是不可变的。1.在Scala 中,关于不可变List 和可变List的说法错误的是?C.if语句和foreach方法;A.for循环和while循环;B.for循环和foreach方法。C.添加元素到不可变列表;D.合并两个列表中的元素,并消除重复的。4.对于不可变List,如果要添加新元素,会怎样?A.添加元素到可变列表;C.创建一个新的List;

2301_82118291的博客 625
上一篇: Scala_入门笔记
下一篇: 求数组的所有排列组合数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值