当前位置: 首页 > news >正文

网站建设网站推广服务公司高端seo服务

网站建设网站推广服务公司,高端seo服务,微信分销系统软件,做直播网站需要证书吗Scala迭代器模式处理数据 scala中创建集合需要内存,集合与集合之间的转换时,每次转换生成新的集合时,新的集合也需要内存。如果有一个非常大的初始集合,需要经过多次转换,每次转换都生成一个新的集合,才能…

Scala迭代器模式处理数据

scala中创建集合需要内存,集合与集合之间的转换时,每次转换生成新的集合时,新的集合也需要内存。如果有一个非常大的初始集合,需要经过多次转换,每次转换都生成一个新的集合,才能得到最终的结果,那么这时,在集合转换过程中内存开销非常大。Scala迭代器模式处理数据,很好的解决了内存占用大的问题。

Scala迭代器模式处理数据每次将集合的转换转变成了迭代器之间的转换,迭代器是不需要占用内存存储的,迭代器只是一个指针,指向了最初的原始数据,这样,数据处理过程中内存占用非常小。

迭代器模式处理示例:

//非迭代器模式处理,浪费内存
val list1 = List[String]("hello java","hello python","hello scala")
val list2 = list1.flatMap(one=>{one.split(" ")})
val list3 = list2.map(one=>{one+"#"})
list3.foreach(println)println("***********************")//迭代器模式处理,内存小
val list = List[String]("hello java","hello python","hello scala")
val iter1 = list.iterator
val iter2 = iter1.flatMap(one=>{one.split(" ")})
val iter3 = iter2.map(one=>{one+"#"})
while(iter3.hasNext){val one = iter3.next()println(one)}

Trait 特质特性

1、概念理解

Scala Trait(特质) 相当于java的接口,实际上它比接口还功能强大。与接口不同的是,它还可以定义属性和方法的实现。

一般情况下Scala的类可以继承多个Trait,从结果来看就是实现了多重继承。第一个关键字使用extends,之后使用with。

Trait(特质)定义的方法与类类似,但它使用的关键字是trait。

2、举例:trait中带属性带方法实现

注意:

继承的多个trait中如果有同名的方法和属性,必须使用“override”重新定义。

2、trait中不可以传参数

trait Read {val readType = "Read"val gender = "m"def read(name:String){println(name+" is reading")}
}trait Listen {val listenType = "Listen"val gender = "m"def listen(name:String){println(name + " is listenning")}
}class Person() extends Read with Listen {override val gender = "f"
}object test {def main(args: Array[String]): Unit = {val person = new Person()person.read("lisi")person.listen("zhangsan")println(person.listenType)println(person.readType)println(person.gender)}}

3、举例:trait中带方法不实现

1.object Lesson_Trait2 {
2.  def main(args: Array[String]): Unit = {
3.    val p1 = new Point(1,2)
4.    val p2 = new Point(1,3)
5.    println(p1.isEqule(p2))
6.    println(p1.isNotEqule(p2))
7.  }
8.}
9.
10.trait Equle{
11.  def isEqule(x:Any) :Boolean 
12.  def isNotEqule(x : Any) = {
13.     !isEqule(x)
14.  }
15.}
16.
17.class Point(x:Int, y:Int) extends Equle {
18.  val xx = x
19.  val yy = y
20.
21.  def isEqule(p:Any) = {
22.    p.isInstanceOf[Point] && p.asInstanceOf[Point].xx==xx
23.  }
24.
25.}

http://www.yidumall.com/news/93042.html

相关文章:

  • 打电话给客户怎样介绍自己是做网站的?开场白?企业官方网站怎么申请
  • 网站建设动态静态郑州seo外包收费标准
  • 南山做网站的公司google中文搜索引擎入口
  • 小企业网站建设厂家有哪些互联网推广的优势
  • wordpress页眉导航商品seo优化是什么意思
  • wordpress 邮箱登陆搜索引擎排名优化价格
  • 2013年以前pc网站建设上海seo外包
  • 做黄色网站多少年兰州网络优化seo
  • 影视作品网站开发与设计电商网络推广
  • 公司网站域名如何申请网站优化的方法有哪些
  • 武汉影楼网站建设网络推广工作好做不
  • 可口可乐的网站建设迅雷下载磁力天堂
  • html5高端网站建设北京seo主管
  • 网站的切图是谁来做东莞seo优化方案
  • 单页面网站制作教程曹操博客seo
  • 秦皇岛市住房和城乡建设局网站灰色关键词怎么做排名
  • 大型企业门户网站能力建设探索与实践武安百度seo
  • 中山市做网站的公司怎么做seo
  • 杭州app开发公司都集中在哪里南京市网站seo整站优化
  • 西安房产网上海网站seo优化
  • 做网站的准备谷歌搜索引擎下载
  • wordpress更新提示seo培训机构哪家好
  • 龙岩古田seo排名课程咨询电话
  • 网站平台建设重点难点分析华为seo诊断及优化分析
  • 开封网站建设北京seo服务商
  • vue做pc网站汕头seo建站
  • 电子商务网站建设需要nba最新排名公布
  • 专业的网站建设案例苏州百度推广排名优化
  • 做网站手把手百度软件中心
  • 一个人做网站设计兼职百度官网进入