昨晚听了王家林老师的Spark 3000门徒系列课程的第一课,把scala基础过了一遍,对ArrayBuffer有了新的认识:

Array本身创建后不可修改
ArrayBuffer可修改
import scala.collection.mutable.ArrayBuffer
val arrB = ArrayBuffer[int]()
arrB += 10
arrB += (11,12,13,5)
arrB ++= Array(1,2,3,5)
arrB.trimEnd(3) 从尾部截断3个
arrB.trimStart(3) 从头部截断
arrB.insert(5,100) 第五个位置增加数字100
arrB.insert(7,9,2) 第七个位置增加一堆数字
arrB.remove(10) 删掉第10个元素,返回值就是删除的值
arrB.remove(10,3) 删掉第10个开始的3个元素
val arr = arrB.toArray
arrB2 = arr.toBuffer
for(elem <- arr) println(elem)

另外还有一个课后作业:移除一个数组中第一个负数后的所有负数

下面是我的答案:

import scala.util.control.Breaks._

object ArrayRm {
def main(args: Array[String]) : Unit = {
val arr = rmFu(Array(1,-2,3,-4,-5,6,-7,8))
for(i <- arr) println(i)
}

def rmFu(arr: Array[Int]) = {
val arrayBuffer = arr.toBuffer
var k = 0
breakable {
for(i <- arrayBuffer){
if(i<0) {
k
break
}
k += 1
}
}
println("k=" + k)

for (i <- (0 until arrayBuffer.length).reverse) {
if(i!=k && arrayBuffer(i)<0) arrayBuffer.remove(i)
}
arrayBuffer.toArray
}
}

最新文章

  1. Notes:SVG(4)基于stroke-dasharray和stroke-dashoffset圆形进度条
  2. 我的bootstrapTable的应用
  3. GoldenGate碎碎念
  4. flow.ci Beta 上线,将开发工作流自动化
  5. Visual Studio 2013编辑HTML文件无设计视图的解决方案
  6. hdu 1370 Biorthythms 中国剩余定理
  7. 自己diy一个jquery分页插件
  8. 谓词的使用 -ios
  9. C++学习49 对二进制文件的读写操作
  10. Windows下编译openssl
  11. plsqldev与sqldeveloper
  12. UESTC 1425 Another LCIS
  13. 小白鼓捣GIT的心得
  14. ESPlatform 支持的三种群集模型 —— ESFramework通信框架 4.0 进阶(09)
  15. 关于多条数据转为json格式单次传输的问题 2017.05.27
  16. Qt调用自己编译的libglog.a出现问题
  17. Centos7下修改固定IP
  18. SpringBoot学习(一)--&gt;Spring的发展
  19. TortoiseGit连接gitlab,一直要求输入密码
  20. rap 部署

热门文章

  1. PZISP自动下载软件运行时出现“应用程序无法启动,因为应用程序的并行配置不正确”
  2. CSS3之弹性布局
  3. Tomcat Connector三种运行模式
  4. 对应键盘的ASCII码(备忘)
  5. JS产生四位随机数的方法
  6. 【缓存】利用Cache防止同一帐号重复登录
  7. ASP.NET的SEO:SEO Hack --- Html注入和Nofollow
  8. Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML
  9. 小菜的系统框架界面设计-数据的完美呈现(DataGridView扩展)
  10. 新浪SAE URLRewrite(伪静态、重定向)详解