Scala学习笔记

这篇博客深入探讨了Scala的高级for循环和for推导式,详细介绍了数组的使用,包括定长和变长数组的操作,如插入、删除、遍历等。此外,还讲解了数组转换、内置函数如sum和max,以及如何进行Scala与Java的互操作。
摘要由CSDN通过智能技术生成

1.高级for循环和for推导式

a.变量<-表达式可以提供多个生成器

for(i<-1 to 3;j<-1 to 3 if i!=j) print((10*i+j)+" ")

b.for循环的循环体以yield开始 ,for循环推导式

for(i<-1 to 10)yield i%3

for{i<-1 to 3
from=4-i
j<-from to 3 }
2.编写一个函数countdown(n:Int),输出n到0的数字

def countdown(n:Int) :Unit={

for(i<-1 to n+1)print(n-i+1+" ")

countdown(10)

思路:首先满足递减,其次要满足输出的最后一位是0

3.数组

A.定长数组

val a=new Array[String](10)

B.变长数组:数组缓冲(ArrayBuffer)

val b=ArrayBuffer[Int]()

b+=1  //用+=在尾端添加元素

b.trimEnd(5)//在尾端移除最后五个元素

b.insert(2,6)

在下标2之前插入元素6

b.remove(n)移除的是下标为n的元素

b.remove(n,m)移除的是下标为n的,数m个元素全部移除

C. 遍历数组和数组缓冲

val a=Array(2,3,4,5)

for (i<-a)print(i)

for(i<-0 until a.length)println(i+":"+a(i))

如果想两个元素一跳,可以这样遍历元素

D.数组转换

for(elem<-a if elem%2==0)yield elem*2

a.filter(_%2==0).map(2*_)

a.filter{_%2==0} map{2*_}

E.scala的内置函数

Array(1,3,9).sum

ArrayBuffer("Mary","Had","Jim").max

排序

val b=Array(1,6,2,10)

val bSorted=b.sorted

F.与java的互操作

scala.collection.JavaConversions里的隐式转换方法

import scala.collection.JavaConversions.javaAsJavaList

import scala.collection.mutable.ArrayBuffer

val command=ArrayBuffer("ls","-al","/home/ary")

val pb=new ProccessBuilder(command)// scala到java的转化








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值