scala元组和集合

Scala元组
*可以包含不同类型的元素
*最多支持22个元素
*使用下划线“_”访问元素,“_1”表示第一个元素
//元组声明方式一
var tp1=(“Mike”,“123 ABC”,58)
println(tp1._1)
println(tp1._2)
printlin(tp1._3)
//迭代元组
tp1.productIterator.foreach{i=>println(“Value=”+i)}

//元组声明方式二
var tp2=new Tuple3(“Mike”,“123 ABC”,58)

//元组声明方式三
“xjia”- >4 //(String Int)=(xia,4)

//将元组元素依次赋给三个变量
val(name,address,age)=tp1
println(name)
println(address)
parintln(age)

Scala集合-分类
*Seq 序列,元素按顺序排列
*Set 集合,元素不重复
*Map 映射,键值对集合

常用集合
名称 可变/不可变 示例
ArrayBuffer mutable val buffer = scala.collection.mutable.ArrayBuffer[Int](10, 20, 30); buffer+=(2,3)
Array mutable val arr=Array(1,2,3)
List immutable val lst=List(1,2,3)
Map mutable val stu= Map(“name” -> “Jason”, “age” -> “18”)
Set mutable/immutable val set=Set(1,2,3)
Vector immutable val v=Vector(1, 3, 5, 7, 11, 13)
Stack mutable/immutable val st=scala.collection.mutable.Stack(1,2,3) //堆栈,先进后出
Queue mutable/immutable val q=scala.collection.mutable.Queue(1,2,3) //队列,先进先出
BitSet mutable/immutable val bit=scala.collection.mutable.BitSet(3,2,0) //位集合
ListMap immutable val map = scala.collection.immutable.ListMap(1->“one”, 2->“two”)
HashSet mutable val set= scala.collection.mutable.HashSet(1,2,3)
HashMap mutable val stu= scala.collection.mutable.HashMap(“name” -> “Jason”, “age” -> “18”)

①Scala List常用操作

var c=List(‘a’,‘b’,‘c’)
var x=‘x’+:c //List[char]=List(x,a,b,c)
var c = List[Char](‘a’, ‘b’, ‘c’)
var x = ‘x’ +: c // (x, a, b, c)
var y = c :+ ‘x’ // (a, b, c, x)
import scala.collection.mutable._
va lb = ListBuffer[Int](1, 2, 3, 4)
lb += 100 //1, 2, 3, 4, 100
lb += (21, 33)//
88 +=: lb //88, 1, 2, 3, 4, 100, 21, 33
List(77, 66) ++=: lb

var l = List[Int](2, 3, 4, 6, 8, 9, 11, 20)
var x = l grouped 3 //等价l.grouped(3)
x.next() //(2, 3, 4)
x.next() //(6, 8, 9)
var y = l sliding 2
y.next() // (2, 3)
y.next() // (3, 4)

var a1 = Array[Int](1, 2, 3, 4)
var a2 = Array[Int](100, 200, 300, 400)
var a = List.concat(a1, a2)//Array->List
a3=a1++a2 //Arrays->Array
a(3) = 333 //Error
a3(3)=333 //OK
var b = Array(333, “333”, ‘3’, false )
var c = List.concat(a, b)
val x = a.filter( _ %2 != 0 )
val y = a.reverse
var m = a.groupBy(t => t%2 == 0)
var n = a.slice(2, 4)
a.sorted //1, 2, 3, 4, 100, 200, 300, 400
a.sorted( Ordering.Int.reverse )
a.sortWith( _ > _ )
a.sortBy( x => x ) //升序
a.sortBy( x => x*(-1) ) //降序

②Scala Set常用操作

var s = Set(“ab”, “yz”)
s += “mn” //mn, ab, yz
s += “mn” //??
s -= “yz” //mn, ab
var t = Set(“ab”, “gh”, “mn”, “st”, “yz” )
t – s //gh, st, yz
t ++ s //ab, gh, mn, st, ya

var os = SortedSet(1, 99, 66, 54, 77 )
os //1, 54, 66, 77, 99
os += 33
os //1, 33, 54, 66, 7

var s = Set(“ab”, “yz”)
var t = Set(“ab”, “gh”, “mn”, “st”, “yz” )
//求交集
t & s
t intersect s
//求并集
t | s
t union s
//求差集
t &~ s
t diff s

import scala.collection.mutable
SortedSet(10,2,4,8,9) //
scala.collection.mutable.SortedSet[Int]=TreeSet(2,4,8,9,10)

③Scala Map常用操作
var m = Map[String, Int](“a”->1, “b”->2, “c”->3, “d”->4, “e”->5, “f”->6, “g”->7, “h”->8, “i”->9)
m(“a”) //1
m += (“j”->0)
m += (“j”->0) //??
m += (“j”->11) //??
var n = m ++ Map[String, Int](“a”->3, “j”->99) //??
n -= (“g”, “e”)

遍历map
for((k,v)<-m)(println(k+v))
//有序Map,按照key的字母序进行排序
val m2=scala.collection.SortedMap(“dd”->25,“c”->30,“aa”->25,“bb”->29)
//定义一个可变map
val sti=scala.collectiom.mutable.Map(“jack”->20,“tom”->21,“peter”->22)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值