scala学习笔记:理解并行集合par】的更多相关文章

scala> (1 to 5).foreach(println(_)) 1 2 3 4 5 scala> (1 to 5).par.foreach(println(_)) 3 1 4 2 5 以下代码获取到参与并行计算的线程: scala> (0 to 10000).collect{case _ => Thread.currentThread.getName}.distinct res53: scala.collection.immutable.IndexedSeq[java.la…
学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack. (01) LinkedList是双向链表实现的双端队列:它不是线程安全的.仅仅适用于单线程. (02) ArrayList是数组实现的队列,它是一个动态数组.它也不是线程安全的,仅仅适用于单线程. (03…
基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可以让整个系统的运行更加平稳.今天要与大家分享一下限流算法和C#版本的组件. 一.令牌桶算法: 令牌桶算法的基本过程如下: 假如用户配置的平均发送速率为r,则每隔1/r秒速率将一个令牌被加入到桶中: 假设桶最多可以存发b个令牌.当桶中的令牌达到上限后,丢弃令牌. 当一个有请求到达时,首先去令牌桶获取令…
Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续更新一些切换后在开发过程中值得注意的地方.以下列举了部分,但令人印象深刻的Scala语言的不同之处,具体的代码演示样例及具体阐述见下文.  Scala中可直接调用Java代码,与Java无缝连接. 语句能够不用";"结束.且推荐不适用";". 变量声明时以var或va…
补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Queue val emp = scala.collection.immutable.Queue[Int](); val has1 = emp.enqueue(1) val has123=has1.enqueue(List(2,3)) println(has1) //Queue(1) println(…
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 3 1.5 Windows下搭建Scala开发环境 4 1.6 Linux下搭建Scala开发环境 5 1.7 Scala开发工具的介绍 8 1.7.1 idea工具的介绍 8 1.7.2 Scala插件安装 8 1.8 scala的开发的快速入门 10 1.8.1 IDE工具Idea 来开发 “…
第2章 变量 val,var,声明变量必须初始化:变量类型确定后不可更改 数据类型:与java有相同的数据类型,在scala中数据类型都是对象 特殊类型:Unit:表示无值,只有一个实例值写出(),相当于void:Null:null:Nothing:null(表示非正常执行) 标识符命名规范:大于1个操作符可以作为标识符:反引号包含的任意字符,包含关键字 scala关键字 第3章 运算符 没有java中的++,--,使用+=,-=替代 键盘输入:StdIn.readxxx 第4章 流程控制 if…
[TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成.Example:(1,1.3415,"Fred") tuple的访问 可以通过_1,_2,_3访问元组的元素 val first = tuple._1 //元组的位置从1开始,而非从0开始 拉链操作:zip 通过操作元组,可以把多个值绑在一起,以便它们能够被一起处理,可以通过zip方法完…
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法. 一.scala学习…
变长数组:数组缓冲 Scala中对于那种长度会变的数组的数据结构为ArrayBuffer. import scala.collection.mutable.ArrayBuffer; // 一个空的数组缓冲,准备存放整数 val array_buffer = ArrayBuffer[Int](); // 或者 new ArrayBuffer[Int] array_buffer += 1; // 结果为:ArrayBuffer(1) // 用+=在尾端添加元素 array_buffer += (1,…
1. 映射 映射Java中的Map,即Key/Value的数据形式 映射的创建,有以下两种方法 scala> val map =Map("Lisa" -> 90 , "Hellen" -> 89) map: scala.collection.immutable.Map[String,Int] = Map(Lisa -> 90, Hellen -> 89) scala> val map =Map("Lisa" -…
建立一个Java类,为了演示Java集合类型向Scala集合的转换: import java.util.ArrayList; import java.util.List; public class School { public List<String> ls = null; public School() { ls = new ArrayList<String>(); ls.add("abc"); ls.add("efg"); } } im…
1.scala集合的null 是nil 而不是null 2.set的三个方法union,intersect,diff union--合并去重 intersect--交集 diff--a减去(a和b交集的部分) 注意::和:::的区别,::是向前追加元素的合并,是右边开始向左结合. 3.map和flatMap(扁平化) 4.scala的流…
先来个正常的: scala> (0 to 5).map((x:Int)=>{println(x);x*2}).foreach(println) 0 1 2 3 4 5 0 2 4 6 8 10 再来个stream版的: scala> (0 to 5).toStream.map((x:Int)=>{println(x);x*2}).foreach(println) 0 0 1 2 2 4 3 6 4 8 5 10 最后来个view版的: scala> (0 to 5).view…
定义一个函数: scala> def foo(x:Int)=x*2 foo: (x: Int)Int 可以采用匿名参数: scala> def foo:((Int)=>Int) = _*2 foo: Int => Int 这个函数的类型是Int=>Int: scala> var bar = foo _ bar: Int => Int = <function1> scala> var bar:(Int)=>Int = foo bar: Int…
scala> import scala.reflect._ import scala.reflect._ scala> class Person(@BeanProperty var name: String, val gender: Boolean=true){} defined class Person scala> val p = new Person("bluejoe") p: Person = Person@5905edf2 scala> p.setNa…
scala> var counter = 0 counter: Int = 0 scala> def foo = {counter += 1; counter} foo: Int scala> val value1 = foo; lazy val value2 = foo; def value3 = foo value1: Int = 1 value2: Int = <lazy> value3: Int scala> value1 res39: Int = 1 scal…
scala> 1 to 10 res9: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> List(1,2,3,4) res10: List[Int] = List(1, 2, 3, 4) scala> (1 to 10).map(_*3).filter(_%2==1).reduce(_+_) res8: Int = 75 试一试map scala> (…
问题: 把 文本字符串"[1, 2, 3, 4, 5]" 转换成一个数组. 答案: val x = "[1, 2, 3, 4, 5]" val y =x slice(1, x.length-1) replace(",","") split(" ") var y1= x slice(1, x.length-1) replace(",","") split("…
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, 4…
object CollectionDemo8 { def main(args: Array[String]): Unit = { //Option集合的使用,可以用来安全的判断null或非null,放心使用,不会抛出空指针异常 val s: String = "abcd" val sp = Option(s) println(sp.isDefined) println(sp.isEmpty) if (sp == Some("abcd")) { println(&qu…
object CollectionDemo7 { def main(args: Array[String]): Unit = { //数组使用 val arr = Array("red", "blue", "yellow") arr(0) = "white" for(el <- arr){println(el)} //用Seq构建List println(Seq("red", "blue&q…
import collection.mutable.Buffer object CollectionDemo6 { def main(args: Array[String]): Unit = { //可变集合类型推导 val nums = Buffer(1) for (i <- 2 to 10) nums += i println(nums) //可变集合类型定义 val nums2 = Buffer[Int]() for (i <- 1 to 10) nums2 += i println(n…
集合的模式匹配操作: object CollectionDemo5 { def main(args: Array[String]): Unit = { //集合模式匹配1 val ls = List(1, 2, 3, 4, 5) println( ls match { case List(1, 2, 3) => "List(1,2,3)" case List(1, 2, 3, 4) => "List(1,2,3,4)" case List(1, 2, 3…
object CollectionDemo10 { def main(args: Array[String]): Unit = { var ls = List[Int](1, 2, 3) //向后增加元素 ls = ls :+ 4 //向前增加元素 ls = 0 +: ls //基本等价 ls = -1 :: ls //向前增加集合 ls = List(-2) ++: ls //基本等价 ls = List(-2) ::: ls //向后增加集合 ls = ls ++ List(5) print…
import util._ import concurrent.ExecutionContext.Implicits.global import concurrent.Future import concurrent.duration._ object CollectionDemo9 { def main(args: Array[String]): Unit = { //Try捕捉异常 println(Try(10 / 0)) println(Try(10).flatMap { x => Try…
class StudentTT extends StudentT{ def sayBye(name: String, age: Int)(address: String){ println("Hello, " + name + ":" + age + ":" + address) } } object CollectionDemo3 { def main(args: Array[String]): Unit = { val s = new Stu…
一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person { var name: String = _ /** * 从构造器 * @param name */ def this(name: String) = { this //注意:从构造器,必须先调用主构造器 this.name = name; } override def toString = { "…
笔记的整理主要针对Scala对比Java的新特性:   1.if表达式 if表达式是有结果返回的. val a= if (5>2) "你好" else 1 a的值为if表达式返回值为 "你好"   2.while表达式 while表达式是没有返回值的(返回值为 Unit),在scala中避免使用,通常都需要与var结合使用   3.for表达式 枚举集合遍历 val a = Array(1,2,3,4,5,6) for (i <- a) println(…
map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: scala> list1 res3: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> list1.map(x=>x*x) res4: List[Int] = List(0, 1, 4, 9, 16, 25, 36, 49, 6…