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
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值