文档章节

scala学习第六天

我是菜鸟我骄傲
 我是菜鸟我骄傲
发布于 2017/02/26 09:35
字数 497
阅读 9
收藏 0
点赞 0
评论 0
package com.learn.scala

import scala.collection.mutable.ArrayBuffer

/**
  * scala学习第六天
  * Created by zhuqing on 2017/2/26.
  */
object Day6Array {
  def main(args: Array[String]): Unit = {

    /**
      * 数组的变遍,可以像Java中Foreach 那样逐个遍历,可以按位置遍历
      */
    for (a <- this.createArray()) {
      print(a + " ")
    }
    println()
    for (a <- this.createArrayBuffer()) {
      print(a + " ")
    }
    println()
    val arr = this.createArray()

    // 0 until 10 ,是0到9的区间Range , 不包含10
    for (i <- 0 until arr.length) {
      print(arr(i) + " ")
    }
    println()
    val arrayBuffer = this.createArrayBuffer()
    for (i <- 0 until arr.length) {
      print(arr(i) + " ")
    }
    println()
    //生成带步长的区间
    println(0 until(arr.length, 2)) //打印Range(0, 2, 4, 6, 8), 步长为2
    for (i <- 0 until(arr.length, 2)) {
      print(arr(i) + " ") //打印1 3 5 7 9
    }
    println()
    //区间的翻转 ,reverse是GenSeqLike的方法,实现了它的集合都有这样的功能
    //关于Range的Api :http://www.scala-lang.org/api/current/scala/collection/immutable/Range.html
    println(0 until arr.length reverse) //Range(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)


    /**
      * 数组的转换,可以使用for循环的yield,
      */
    //去数组arr的偶数位的数并乘以2
    val arrNew = for (i <- 0 until(arr.length, 2)) yield arr(i) * 2
    //数组 yield后成为Vector
    println(arrNew.getClass); //打印class scala.collection.immutable.Vector
    //toArray转换为Array,toArray是特质GenTraversableOnce中的方法
    //Vector的Api :http://www.scala-lang.org/api/current/scala/collection/immutable/Vector.html
    println(arrNew.toArray.mkString(" ")); //2 6 10 14 18

    /**
      * 数组的另一种转换,是使用自带的Map方法
      */
      //与上面的功能相似
    val arrNew2 = arr.filter((a: Int) => {
      a % 2 != 0
    }).map((a: Int) => {
      a * 2
    })
    println(arrNew2.mkString(" ")); //2 6 10 14 18
    //与上面的功能一样,scala中的lambda可以比Java中的更简单一些,如下面"_"表示参数
    val arrNew3 = arr.filter(_%2!=0).map(_*2);
    println(arrNew3.mkString(" ")); //2 6 10 14 18

    /**
      * 数组还有一些常用的算法,sum,max,min,sort , mkString:拼接成字符串
      * 可以参考API:http://www.scala-lang.org/api/current/scala/Array.html
      * http://www.scala-lang.org/api/current/scala/collection/mutable/ArrayBuffer.html
      */
    println(arr sum)//arr的和
    println(arr max)//arr的最大值,maxBy可以自己比较最大值
    //前面的遍历数组打印,可以这样实现
    println(arr mkString(" "))
  }

  /**
    * 创建一个1到10的ArrayBuffer
    *
    * @return
    */
  def createArrayBuffer(): ArrayBuffer[Int] = {
    ArrayBuffer[Int](1 to 10: _*)
  }

  /**
    * 创建1到10的Array
    *
    * @return
    */
  def createArray(): Array[Int] = {
    Array[Int](1 to 10: _*)
  }


}

 

© 著作权归作者所有

共有 人打赏支持
我是菜鸟我骄傲
粉丝 12
博文 208
码字总数 132689
作品 0
西安
架构师
分享一个用Scala Play + Slick 开始写的一个学习的开源web app

好, 最近在學Play,用Play在這些天寫了一個初始的app,用的是Play! framework 2.x + Play slick 1.x,前端用的是,原始的bootstrap。已经开源,https://github.com/hellomaya/scala-connec...

自由之信 ⋅ 2016/01/24 ⋅ 2

大数据学习资源整理

github地址 后面继续更新在github utils4s scala语法学习 common库 BigData库 Spark Spark core Spark Streaming Spark SQL Spark 机器学习 Spark 其它 ES 贡献代码步骤 贡献者 utils4s包含各...

jacksu ⋅ 2016/02/25 ⋅ 0

如何成为云计算大数据Spark高手

Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位; 要想...

Spark亚太研究院 ⋅ 2014/06/13 ⋅ 3

scala:函数参数的传名调用(call-by-name)和传值调用(call-by-value)

问题导读: 1.Scala函数参数传值调用? 2.Scala函数参数传名调用? 引言 Scala的解释器在解析函数参数(function arguments)时有两种方式:先计算参数表达式的值(reduce the arguments),再应...

choulanlan ⋅ 2016/06/14 ⋅ 0

七天LLVM零基础入门(Linux版本)------总结

七天LLVM零基础入门这系列文章,为了让刚接触LLVM的人在最短的时间内快速的熟悉LLVM。这系列文章,现在经过将近一年的时间的使用,有了不少反馈的意见,现在将这些情况总结一下。 1. 在按照这...

snsn1984 ⋅ 2014/02/10 ⋅ 0

干货 | 如何成为大数据Spark高手

Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库、流处理和图计算等多种计算范式,是罕见的全能...

rlnlo2pnefx9c ⋅ 2017/12/11 ⋅ 0

教你如何成为Spark大数据高手

Spark目前被越来越多的企业使用,和Hadoop一样,Spark也是以作业的形式向集群提交任务,那么如何成为Spark大数据高手?下面就来个深度教程。 分享之前我还是要推荐下我自己创建的大数据学习交...

风火数据 ⋅ 05/20 ⋅ 0

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第1节②

三、你为什么需要Spark; 你需要Spark的十大理由: 1,Spark是可以革命Hadoop的目前唯一替代者,能够做Hadoop做的一切事情,同时速度比Hadoop快了100倍以上: Logistic regression in Hadoo...

Spark亚太研究院 ⋅ 2014/12/16 ⋅ 1

建设局项目总结(二)——最囧的一个星期

今天,建设局的项目准确的来说已经算是进行一个星期了,这一个星期,唯独有一点点的工作量能算的上收获外,其他的一切对我来说都好像一场噩梦,这七天过的实在是有点不尽人意啊,用他们的话来...

长平狐 ⋅ 2012/11/12 ⋅ 0

几个 Scala 在线学习资源(E文)

最近想学习下 Scala ,下面是找到的一些 E 文的在线学习资源 The official Scala site, start at the Learning Scala trail or take a tour of Scala. First steps to Scala by Bill Venners......

华宰 ⋅ 2011/06/16 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

Spring JDBC使用方法

普通实现: 1、创建数据表customer。 可以使用任何数据库实现,在项目中要引入相应数据库驱动包并配置相应数据库连接。 2、创建Customer pojo。 Customer类的属性对应数据库的属性,除了为每...

霍淇滨 ⋅ 今天 ⋅ 0

Contos 7 安装Jenkins

Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动...

欧虞山 ⋅ 今天 ⋅ 0

revel

revel install go get github.com/revel/revelgo get github.com/revel/cmd create new app revel new git.oschina.net/zdglf/myapp run app revel run git.oschina.net/zdglf/myapp ot......

zdglf ⋅ 今天 ⋅ 0

49. Group Anagrams - LeetCode

Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List<String>> groupAnagrams(String[] strs) { Map<Strin......

yysue ⋅ 今天 ⋅ 0

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 今天 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 今天 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部