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(" ...
随机推荐
- 2019nc#5
题号 标题 已通过代码 题解/讨论 通过率 团队的状态 A digits 2 点击查看 1017/2384 通过 B generator 1 点击查看 567/3692 通过 C generato ...
- Atcoder D - A or...or B Problem(思维)
题目链接:http://agc015.contest.atcoder.jp/tasks/agc015_d 题意:给出两个数b,a(a>=b)问{a,a+1,....,b}的集合内取任意数求或运算 ...
- spark与mapreduce的区别
spark是通过借鉴Hadoop mapreduce发展而来,继承了其分布式并行计算的优点,并改进了mapreduce明显的缺陷,具体表现在以下几方面: 1.spark把中间计算结果存放在内存中,减少 ...
- 【LeetCode】46-全排列
题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [ ...
- vuex-class用法
vuex-class可以包装vuex的写法,使代码简化 Installation $ npm install --save vuex-class Example import Vue from 'vu ...
- 如何在Centos服务器上搭建起Oracle10、VNC、以及FTP
一.重装和分区 1.配置所需磁盘阵列(Raid): 2.正确分区: 3.Centos安装:过于简单,请自行bd. 二.连网 系统安装完成之后,我们需为其分配IP和DNS: "编辑连接&quo ...
- ExpandableListView 可折叠的下拉listview
ExpandableListView用法如下 1.定义布局文件main.xml文件 <?xml version="1.0" encoding="utf-8" ...
- 自荐RedisViewer有情怀的跨平台Redis可视化客户端工具
# **自荐一个有情怀的跨平台Redis可视化客户端工具——RedisViewer**[转载自 最美分享Coder 2019-09-17 06:31:00](https://www.toutiao.c ...
- ubuntu 12.04下访问windows共享文件夹
ubuntu 12.04LTS已经不支持smbfs文件系统,所以不能用mount -smbfs 来映射windows共享文件夹. 常见有两种方法 1.terminal下 mount //192.168 ...
- 44 (OC)* 野指针、空指针
一: 空指针 : 没有存储任何内存地址的指针就称为空指针(NULL指针). 被赋值为nil的指针,在没有被具体初始化之前,为nil.nil.Nil.NULL.NSNULL的含义和区别 nil:OC中的 ...