Scala 容器与类型系统之编程进阶(3)
来源:互联网 发布:金十数据盘 编辑:程序博客网 时间:2024/05/19 14:37
本篇博客主要介绍Scala中容器的使用以及类型系统的使用语法:
1.Scala 容器的使用
/*Scala的集合体系中Iterable是共同的Trait,Iterable要继承实现一些共同的方法,例如对元素的遍历Array是一个非常基础的数据结构,不从属于Scala集合体系Scala集合体系中集合分为可变集合和不可变集合之分;不可变集合在scala.collection.immutable中可变集合在scala.collection.mutableList 是元素列表集合,是不可变的第一点:List的head是指第一个元素,tail是指剩下的元素构成的集合第二点:使用::这个操作符来把List和其他的元素进行组拼来构成新的List如果集合中没有元素的话,此时为Nil,如果说List中只有一个元素,那么head就是这个集合本身,tail操作会返回NilLinkedList 是元素可变的列表Set是元素不可重复的集合,且元素是无序的;HashSet中的元素不可变,且不能够保证顺序LinkedHashSet会维护元素的插入顺序Sorted会自动把插入的元素进行排序 */object Functional_Iterable { def main(args: Array[String]): Unit = {/*第一点:List的head是指第一个元素,tail是指剩下的元素构成的集合第二点:使用::这个操作符来把List和其他的元素进行组拼来构成新的List如果集合中没有元素的话,此时为Nil,如果说List中只有一个元素,那么head就是这个集合本身,tail操作会返回Nil*/ val range = 1 to 10 val list = List(1,2,3,4,5) println(list.head) println(list.tail) /*使用::这个操作符来把List和其他的元素进行组拼来构成新的List如果集合中没有元素的话,此时为Nil,如果说List中只有一个元素,那么head就是这个集合本身,tail操作会返回Nil*/ println(0 :: list) //LinkedList 是元素可变的列表 var linkedList = scala.collection.mutable.LinkedList(1,2,3,4,5) println(linkedList.elem) println("-----") println(linkedList.tail) //增加元素9 val copied = linkedList.+:(9) println(copied) //Set是元素不可重复的集合,且元素是无序的 val set = Set(1,2,3,4,5) println(set) val setMore = set + 1 println(setMore) //HashSet中的元素不可变,且不能够保证顺序 val hashSet = scala.collection.mutable.HashSet(1,2,3) hashSet += 5 hashSet += 50 hashSet += 500 hashSet += 5000 hashSet += 50000 println(hashSet) //LinkedHashSet会维护元素的插入顺序 val linkedHashSet = scala.collection.mutable.LinkedHashSet(1,2,3) linkedHashSet += 5 linkedHashSet += 50 linkedHashSet += 4 println(linkedHashSet) //Sorted会自动把插入的元素进行排序 val sortedSet = scala.collection.mutable.SortedSet(1,2,3,4,5,54,6,4) println(sortedSet) println(List[String]("I am into Spark so much","Scala is powerful").flatMap { x => x.split(" ") }.map { x => (x, 1) }.map(x => x._2).reduce(_+_)) println(List[String]("I am into Spark so much","Scala is powerful").flatMap { x => x.split(" ") }.map {(_,1)}.map(_._2).reduce(_+_)) println(List[String]("I am into Spark so much","Scala is powerful").flatMap{ x => x.split(" ")}.map{(_,1)}.map(_._2).reduce((x,y) => x+y)) //容器中元素遍历的不同方法 List(0,1,2,3,4,5).foreach { x => println(x) } println("---------") List(0,1,2,3,4,5).foreach{println(_)} println("---------") List(0,1,2,3,4,5).foreach{println _} println("---------") List(0,1,2,3,4,5).foreach{println } println("---------") List(0,1,2,3,4,5).foreach(println) }}
本博客内容来自于 : 简介: 王家林:DT大数据梦工厂创始人和首席专家. 联系邮箱18610086859@126.com 电话:18610086859 QQ:1740415547 微信号:18610086859
0 0
- Scala 容器与类型系统之编程进阶(3)
- Scala 类型系统实战之编程进阶(4)
- Scala类型系统编程
- scala之函数编程进阶
- Scala 提取器与注解深度解析之编程进阶(6)
- Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
- Scala 模式匹配之编程进阶(2)
- Scala的包,继承复写之编程进阶(8)
- scala类型系统:3) 单例类型与this.type
- scala类型系统:1) 类型与类
- scala类型系统:1) 类型与类
- 第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
- 大数据Spark“蘑菇云”行动-第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
- 第20节:Scala 提取器与注解深度解析之编程进阶
- Spring进阶之路(4)-容器中Bean作用域与集合类型配置
- Spring进阶之路(4)-容器中Bean作用域与集合类型配置
- Scala 函数式编程进阶 (1)
- Scala进阶编程指南
- Hadoop Map/Reduce教程
- JUC(四)—— ConcurrentHashMap
- tab-切换
- 郑轻 oj 1895: 985的0-1串难题
- 最小生成树 (hdu)1102 1162 1233 1301 1863 7875 7873
- Scala 容器与类型系统之编程进阶(3)
- java/session/cookie/jsp(一)
- NFC详解
- vs2010添加"OLE/COM对象查看器"
- 2016.8.4 开营测试解题报告
- VC++库函数获取window当前驱动盘符发现新U盘插入则报告
- leetcode No77. Combinations
- Android 源码中的设计模式
- 100天土鸡饲养计划(17)