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. CodeForces gym Nasta Rabbara lct

    Nasta Rabbara 题意:简单来说就是, 现在有 n个点, m条边, 每次询问一个区间[ l ,  r ], 将这个区间的所有边都连上, 如果现在的图中有奇数环, 就输出 “Impossibl ...

  2. HDU 6346 整数规划 二分图匹配最优解

    整数规划 原来的km+hunger跑法T了, 拿了一个新的板子, 新的写法是将这原来的找新的最小的d放在了上一次的残留图上,从而减小复杂度, 但是个人还不是很理解为什么最小的d下一次出现的位置一定是这 ...

  3. CodeForces 1018B The hat

    The hat 题解: 定义d[i]为第i个数和他对面的差值. 然后我们可以发现d[i]和d[i+1]的差值只会有3种情况2, -2, 0. 并且可以知道 d[i] = - d[i+n/2] 所以如果 ...

  4. CF1005D Polycarp and Div 3 思维

    Polycarp and Div 3 time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  5. spring的嵌套事务

    转自http://www.iteye.com/topic/35907 在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看, 绝大多数人并不能深刻 ...

  6. 【Offer】[9] 【用两个栈实现队列】

    题目描述 思路分析 Java代码 代码链接 题目描述 用两个栈实现队列 思路分析 栈--> 先进后出 队列--> 先进先出 进队列操作,选择栈s1进栈,关键在与实现出队列操作,要考虑到队列 ...

  7. Linux root 用户下 selenium 运行chrome --no-sandbox的问题的解决

    #coding = utf-8 from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_opt ...

  8. 互联网寒冬之泪:Android开发程序员,你够优秀吗?

    我想每个开发者在学习成长的过程中,在面临技术难题的时候,都有经历过自我怀疑的过程,但是有时候这并不是你的错,大家都经历过如此的过程.我们作为一个开发者,在成长的过程中,总有一些小的胜利和小的沮丧,学着 ...

  9. Redis集群增加节点和删除节点

    本文主要是承接上一篇文章Redis集群的离线安装成功以后,我们如何进行给集群增加新的主从节点(集群扩容)以及如何从集群中删除节点(集群缩容),也就是集群的伸缩,集群伸缩的原理是控制虚拟槽和数据在节点之 ...

  10. Metaspolit工具----基础

    Metasploit框架(Metasploit Framework,MSF)是一个开源工具,旨在方便渗透测试,他是有Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发.使用定制的 ...