scala--集合

val x = Vector(1, 2, 3)
x.sum // 6
x.filter(_ > 1) // Vector(2, 3)
x.map(_ * 2) // Vector(2, 4, 6)
x.takeWhile(_ < 3) // Vector(1, 2)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
immutable :
ArraySeq属于IndexedSeq,底层数组实现,随机查找性能高,写操作需要线性时间
LazyList属于LinearSeq,是链表,但是lazy
List属于LinearSeq,适合prepending 元素,操作表的投或者尾
Queue属于LinearSeq,先进先出的数据结构,适用于不可变及可变版本
Range属于IndexedSeq
Vector
mutable :
Array属于IndexedSeq,
ArrayBuffer

import scala.util.Random

// List
val xs = List(1,2,3,4,5)
val ys = Random.shuffle(xs) // result will be shuffled, like List(4,1,3,2,5)

// also works with other sequences
val x = Random.shuffle(Vector(1,2,3,4,5)) // x: Vector(5,3,4,1,2)
val x = Random.shuffle(Array(1,2,3,4,5)) // x: ArraySeq(1,3,2,4,5)

import scala.collection.mutable.ArrayBuffer
val x = Random.shuffle(ArrayBuffer(1,2,3,4,5)) // x: ArrayBuffer(4,2,3,1,5)

import scala.util.Random
val randomNumber = getRandomElement(List(1,2,3))
val randomString = getRandomElement(List(“a”, “b”, “c”))

Methods like dropRight and takeRight will perform slowly on linear sequences like a List. If you need to use these methods with large sequences, use an indexed sequence like Vector instead.

val nums = Vector(1, 2, 3, 4, 5)
nums.head // 1
nums.headOption // Some(1)
nums.init // Vector(1, 2, 3, 4)
nums.tail // Vector(2, 3, 4, 5)
nums.last // 5
nums.lastOption // Some(5)
head, init, tail, and last will throw a java.lang.UnsupportedOperationException on empty sequences.

val xs = List(15, 5, 25, 20, 10)
val ys = xs.partition(_ > 10) // ys: (List(15, 25, 20), List(5, 10))
val ys = xs.partition(_ < 25) // ys: (List(15, 5, 20, 10), List(25))
val ys = xs.span(_ < 20) // ys: (List(15, 5), List(25, 20, 10))
val ys = xs.span(_ > 10) // ys: (List(15), List(5, 25, 20, 10))

val states = Map(
“AK” -> “Alaska”,
“IL” -> “Illinois”,
“KY” -> “Kentucky”
)
states.values.exists(.contains(“ucky”))//不要使用,产生中间数据消耗内存
states.valuesIterator.exists(
.contains(“ucky”)) // 建议使用
keysIterator and valuesIterator不会创建中间对象建议使用

val x = LinkedHashMap(states .toSeq.sortBy(_.1):*)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值