美文网首页
scala集合学习笔记

scala集合学习笔记

作者: zhangxu0636 | 来源:发表于2016-07-12 15:37 被阅读71次

列表 List

类似于数组

  • 创建列表
val list = List(2, 3, 4, 5)
//创建空的列表
val list1 = Nil 
val list2 = List()
val list3 = 1 :: 2 :: Nil
  • 获取元素,下标也从0开始
list(0)
  • 统计特定的元素的个数
//统计List中元素大于2的个数
list.count(x => x > 2)

统计其中字符串的长度大于2的元素的个数

val tempList = "1" :: "hello" :: "test" :: Nil
tempList.count(s=>s.length > 2)
  • 获得列表的长度
list.length
  • 生成用指定符号隔开的字符串
list.mkString(":")
list.mkString(",")
  • 反序生成列表
list.reverse
  • 排序
    sortWith
val sortList = List(2,4,4,5,65)
//降序
sortList.sortWith((x: Int, y: Int) => x > y)
//升序
sortList.sortWith((x: Int, y: Int) => x < y)
  • 打印每一个元素
list.foreach((x)=>println(x))
//或者
list.foreach(println _)

集合

val set = Set(1,2,1)

元组

val hostPort = ("localhost",80)
hostPort._1
hostPort._2

Map

val map = Map("1"->"2")
val map = Map(("1"->"2"))
map.get("1")
//如果取不到值,在java中肯定会报错,但是在这我们可以规避,给定一个default值
map.getOrElse("2",3)

函数组合子

  • Map

对列表中的每个元素应用一个函数,返回应用后的元素所组成的列表。

list.map((i: Int) => i + 2)
//传入一个函数
def add(i: Int): Int = i + 2
list.map(add)
  • filter

移除任何对传入函数计算结果为false的元素。返回一个布尔值的函数通常被称为谓词函数[或判定函数]。

list.filter((i: Int) => i % 2 == 0)
  • zip拉练操作

将两个列表的内容聚合到一个对偶列表中。

List(1,2,3).zip(List("a","b","c"))
  • partition

将使用给定的谓词函数分割列表。

val testList = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
testList.partition(_ % 2 == 0)
  • find
    find返回集合中第一个匹配谓词函数的元素。
testList.find((x: Int) => x > 3)
  • foldLeft

将上次的计算结果重新赋值,然后与下一个元素进行累计。

testList.foldLeft(0) {
  (m: Int, n: Int) => m + n
}

我们可以观察一下这个过程。

testList.foldLeft(0) {
  (m: Int, n: Int) => println("m: " + m + " n: " + n); m + n
}
  • flatten

将嵌套结构扁平化为一个层次的集合。

List(List(1,2),List(3,4)).flatten
  • flatMap

一个处理嵌套列表的函数,然后将结果串连起来。

val nestedList = List(List(1,2),List(3,4))
nestedList.flatMap(x=>x.map(_ * 2))

相关文章

  • Scala相关文章索引(2)

    基本常识 scala编程第17章学习笔记(1)——集合类型 scala Map类型笔记 scala代码风格指南--...

  • scala集合学习笔记

    列表 List 类似于数组 创建列表 获取元素,下标也从0开始 统计特定的元素的个数 统计其中字符串的长度大于2的...

  • Scala集合

    附上Effective Scala:Effective Scala学习笔记摘抄于Twitter scala文档:T...

  • 《Scala 程序设计》学习笔记 说明

    本笔记是我在学习完 Scala 语法后,重学 Scala 时记录的。笔记中的内容侧重 Scala 和 函数式语言的...

  • Scala编程基础18:Scala集合

    Scala集合Set类型的元素是无序不重复的。Scala集合分为可变集合和不可变集合两种。默认情况下,Scala集...

  • Scala学习笔记(八) 模式匹配

    1. 模式匹配简介 模式匹配是 Scala 的重要特性之一,前面两篇笔记Scala学习笔记(六) Scala的偏函...

  • Scala基础

    学习笔记摘抄于Twitter scala文档:Twitter.github.ionext:Scala类&对象(一)...

  • Scala 集合与算子

    Scala 同时支持不可变集合和可变集合,不可变集合可以安全的并发访问,Scala 默认采用不可变集合。可变集合:...

  • Scala 简明速学04 集合-Map

    Scala 简明速学04 集合-Map Map Scala中Map提供键值对集合。 Map的初始化 Scala中的...

  • Scala笔记

    Scala基础 学习twitter的scala教程的笔记 函数 函数定义,scala语法中可以使用多种方式定义函数...

网友评论

      本文标题:scala集合学习笔记

      本文链接:https://www.haomeiwen.com/subject/awzjjttx.html