Scala 学习笔记之集合(1)
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)的更多相关文章
- Scala 学习笔记之集合(3)
建立一个Java类,为了演示Java集合类型向Scala集合的转换: import java.util.ArrayList; import java.util.List; public class S ...
- scala学习笔记:集合
scala> 1 to 10 res9: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9 ...
- Scala 学习笔记之集合(7) Option
object CollectionDemo8 { def main(args: Array[String]): Unit = { //Option集合的使用,可以用来安全的判断null或非null,放 ...
- Scala 学习笔记之集合(6)
object CollectionDemo7 { def main(args: Array[String]): Unit = { //数组使用 val arr = Array("red&qu ...
- Scala 学习笔记之集合(5)
import collection.mutable.Buffer object CollectionDemo6 { def main(args: Array[String]): Unit = { // ...
- Scala 学习笔记之集合(4)
集合的模式匹配操作: object CollectionDemo5 { def main(args: Array[String]): Unit = { //集合模式匹配1 val ls = List( ...
- Scala 学习笔记之集合(9) 集合常用操作汇总
object CollectionDemo10 { def main(args: Array[String]): Unit = { var ls = List[Int](1, 2, 3) //向后增加 ...
- Scala 学习笔记之集合(8) Try和Future
import util._ import concurrent.ExecutionContext.Implicits.global import concurrent.Future import co ...
- Scala 学习笔记之集合(2)
class StudentTT extends StudentT{ def sayBye(name: String, age: Int)(address: String){ println(" ...
随机推荐
- HDU 4479 Shortest path 带限制最短路
题意:给定一个图,求从1到N的递增边权的最短路. 解法:类似于bellman-ford思想,将所有的边先按照权值排一个序,然后依次将边加入进去更新,每条边只更新一次,为了保证得到的路径是边权递增的,每 ...
- 3.python之文件操作
一.文件操作初识 f = open('文件路径', '编码方式', '操作方式') # 注意里面所有内容,需加引号 ” 打开一个文件需要知道的内容有: 文件路径:c:\文件.txt(绝对路径和相对路径 ...
- 【Offer】[57-1] 【和为S的两个数字】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 牛客网刷题 ...
- 【Offer】[23] 【链表中环的入口结点】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 一个链表中包含环,如何找出环的入口结点?  思路分析 判断链表中是否有环:用快慢指针的方法,慢指针走一步,快指针走两步,如果快指针追上 ...
- 分享个人学习js的笔记
1.回到顶部效果. 2.滚动条向上滚动式,滑动滚轮.解决bug的方法. 3.有关Document. 4.getElementByClassName();获取元素类名的封装.单个类名的元素.任然不完美. ...
- java.lang.UnsupportedClassVersionError:JDK版本不一致报错
交代一下背景:公司运行的一个上线项目,打了个补丁发给客户后,反馈说运行不了.把源码拿回来场景重现.贴上报错信息: 08-15 14:13:29 ERROR doPost(jcm.framework.r ...
- elk安装和使用
elk安装和使用 使用的版本都是5.2.0 elasticsearch-5.2.0安装 在官网 下载 elasticsearch tar包 解压安装 tar zxf elasticsearch-5.2 ...
- Android程序员接下来的路该如何走?
随着“5G”(第五代移动通信技术)商用进程越来越快,各个芯片和终端厂商们都已经开始布局准备,想必智能手机会是消费者最先能够接触到5G的重要终端,而和其相辅相生的移动互联网也势必会有新的发展. 但是和行 ...
- apk签名发布及其原理
如果我们在ADT中开发完了一个android项目,如何将它打包呢?方法如下: 1.unsigned APP(无签名的APP) 最懒惰的方法,可以直接在项目的bin目录下直接将apk拷贝出来,就ok了. ...
- hive学习笔记之-数据类型
数据类型 Hive基本的数据类型: Hive集合数据类型: 另外还有一个复合数据类型,可以综合上面的数据类型组合到一起. · union: UNIONTYPE<data_typ ...