package com.citi.scala

 object CollectionDemo {
def main(args: Array[String]): Unit = { /**
* List
*/
println("--------------------------List-------------------------")
val numbers = List[Int](11, 22, 33, 44, 55)
val numbers1 = List(11, 22, 33, 44, 55)
val colors = List[String]("red", "green", "blue")
println(s"colors has ${colors.size}, $colors")
//取第一个
println(colors.head)
//去掉第一个,取剩下的
println(colors.tail)
//取第二个
println(colors(1))
//遍历
for (s <- colors) { println(s) }
//高阶函数使用
colors.foreach { (s: String) => println(s) }
colors.foreach { s => println(s) }
colors.foreach { println(_) }
val elSize = colors.map((s: String) => s.size)
println(elSize)
println(numbers.reduce((a: Int, b: Int) => a + b))
//初始化空List
val ls: List[Int] = List[Int]()
val lls: List[Int] = Nil
println(ls == lls)
//遍历
var i = numbers
while (!i.isEmpty) {
println(i.head)
i = i.tail
} i = numbers
while (i != Nil) {
println(i.head)
i = i.tail
}
//cons操作符
val consNumbers = 3 :: 2 :: 1 :: Nil
println(consNumbers) //List的算数运算
println(3 :: 2 :: 1 :: Nil)
println(List(7, 6, 5) ::: List(4, 3, 2, 1))
println(List(4, 3, 2, 1) ++ List(7, 6, 5))
println(List(1, 2) == List(2, 1))
println(List(2, 1) == List(2, 1))
println(List(1, 2, 3, 2, 1).distinct)
println(List(1, 2, 3, 2, 1) drop (2))
println(List(4, 3, 2, 1) filter { _ >= 3 })
println(List(List(1, 2, 3), List(4, 5, 6)).flatten) println((List(1, 2, 3, 4, 5).partition(_ >= 3)))
println(List(1, 2, 3, 4, 5) reverse)
println(List(2, 3, 5, 7, 10, 11) slice (1, 4))
println(List("apple", "ben") sortBy { s => s.size })
println(List(2, 3, 5, 7, 10, 11) splitAt (3))
println(List(2, 3, 5, 7, 10, 11) take (3))
println(List(1, 2, 3) zip List("a", "b"))
println(List(1, 2) :+ 3) /**
* Set
*/
println("--------------------------Set-------------------------")
val numbersets = Set[Int](11, 22, 11, 33, 44, 55)
println(s"numbersets has ${numbersets.size}, $numbersets")
println(numbersets.reduce((a: Int, b: Int) => a + b))
/**
* Map
*/
println("--------------------------Map-------------------------")
val colorMap = Map[String, Int]("red" -> 1, "green" -> 2, "yellow" -> 3)
println(colorMap("red"))
for (pair <- colorMap) { println(pair) } }
}

运行结果:

--------------------------List-------------------------
colors has 3, List(red, green, blue)
red
List(green, blue)
green
red
green
blue
red
green
blue
red
green
blue
red
green
blue
List(3, 5, 4)
165
true
11
22
33
44
55
11
22
33
44
55
List(3, 2, 1)
List(3, 2, 1)
List(7, 6, 5, 4, 3, 2, 1)
List(4, 3, 2, 1, 7, 6, 5)
false
true
List(1, 2, 3)
List(3, 2, 1)
List(4, 3)
List(1, 2, 3, 4, 5, 6)
(List(3, 4, 5),List(1, 2))
List(5, 4, 3, 2, 1)
List(3, 5, 7)
List(ben, apple)
(List(2, 3, 5),List(7, 10, 11))
List(2, 3, 5)
List((1,a), (2,b))
List(1, 2, 3)
--------------------------Set-------------------------
numbersets has 5, Set(33, 22, 44, 11, 55)
165
--------------------------Map-------------------------
1
(red,1)
(green,2)
(yellow,3)

Scala 学习笔记之集合(1)的更多相关文章

  1. Scala 学习笔记之集合(3)

    建立一个Java类,为了演示Java集合类型向Scala集合的转换: import java.util.ArrayList; import java.util.List; public class S ...

  2. scala学习笔记:集合

    scala> 1 to 10 res9: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9 ...

  3. Scala 学习笔记之集合(7) Option

    object CollectionDemo8 { def main(args: Array[String]): Unit = { //Option集合的使用,可以用来安全的判断null或非null,放 ...

  4. Scala 学习笔记之集合(6)

    object CollectionDemo7 { def main(args: Array[String]): Unit = { //数组使用 val arr = Array("red&qu ...

  5. Scala 学习笔记之集合(5)

    import collection.mutable.Buffer object CollectionDemo6 { def main(args: Array[String]): Unit = { // ...

  6. Scala 学习笔记之集合(4)

    集合的模式匹配操作: object CollectionDemo5 { def main(args: Array[String]): Unit = { //集合模式匹配1 val ls = List( ...

  7. Scala 学习笔记之集合(9) 集合常用操作汇总

    object CollectionDemo10 { def main(args: Array[String]): Unit = { var ls = List[Int](1, 2, 3) //向后增加 ...

  8. Scala 学习笔记之集合(8) Try和Future

    import util._ import concurrent.ExecutionContext.Implicits.global import concurrent.Future import co ...

  9. Scala 学习笔记之集合(2)

    class StudentTT extends StudentT{ def sayBye(name: String, age: Int)(address: String){ println(" ...

随机推荐

  1. HDU-3400Line belt-三分再三分-求距离中要加esp

    传送门:Line belt 参考:http://blog.csdn.net/hcbbt/article/details/39375763 题意:在一个平面途中,有一条路ab,还有一条路cd:假设在ab ...

  2. CodeForces 1084D The Fair Nut and the Best Path

    The Fair Nut and the Best Path 题意:求路径上的 点权和 - 边权和 最大, 然后不能存在某个点为负数. 题解: dfs一遍, 求所有儿子走到这个点的最大值和次大值. 我 ...

  3. poj3666 Making the Grade(基础dp + 离散化)

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  4. 树莓派的Respbian或者ubuntu系统下安装opencv最有效的方法

    第一种方法当然首选和其他安装包相同的方法pip install opencv-python安装失败后果断选择第二种方法,这第二种方法尝试过很多次了,屡试不爽 第二种方法:sudo apt-get in ...

  5. [ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

    昨天,在测试新的数据库时,迁移表遇到了这个问题.现在记录一下解决方案. 1.在配置文件中添加关闭严格模式的配置:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS ...

  6. Android集成JPush极光推送

    推送原理 参考网址:https://blog.csdn.net/huangli1466384630/article/details/79889473 SDK下载 https://docs.jiguan ...

  7. Java测试(二)

    一.选择题(每题2分,共40分) 1.下面哪个是Java语言中正确的标识符(C ) a)      3com        b)import        c)that d)this 2.下面哪个语句 ...

  8. JVM参数配置及详解 -Xms -Xmx -Xmn -Xss 调优总结

    堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统 下,一般限制在1.5G~2G;64为操 ...

  9. Swift从入门到精通第十四篇 - 错误处理 初识

    错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 在 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...

  10. Bytectf-几道web总结

    1.EZcms 这道题思路挺明确,给了源码,考点就是md5哈希扩展+phar反序列化 首先这道题会在上传的文件目录下生成无效的.htaccess,从而导致无法执行上传的webshell,所以就需要想办 ...