import scala.collection.mutable.ArrayBuffer

/**
* 与Array区别:
* 1、Array是不可变的,不能直接地对其元素进行删除操作,只能通过重赋值或过滤生成新的Array的方式来删除不要的元素
* 2、ArrayBuffer是可变的,提供了很多元素的操作,包括删除的操作
* 他们相互转化很方便,调用toArray 、toBuffer方法即可
*/
object ArrayBufferUse { def main(args: Array[String]): Unit = { val b = ArrayBuffer[Int]()
b+= 1;
b+= (2,3,4,5,6)
b.remove(1) // 删除元素
println(b.mkString(",")) // 变成Array
val ary = b.toArray
println(ary.mkString(",")) println(ary.sum)
println(ary.max)
println(ary.min)
println(ary.toBuffer.toString) // yield
var b1 = for(ele <- ary) yield ele * ele
println(b1.mkString(",")) val ab = ArrayBuffer[Int]()
ab +=(2,3,4,5,6) val c = for(ele <- ab) yield ele * ele
println(c.mkString(",")) // 找出来偶数
val d1 = for(ele <- ab if ele % 2 == 0) yield ele * ele
println(d1.mkString(",")) // 函数式编程 _ 表示元素
println(d1.filter(_ % 2 == 0).map(_ * 3).mkString(",")) removeNegativeBad() removeNegativeGood() } def removeNegativeBad()={
val ab = new ArrayBuffer[Int]()
ab += (1,2,3,4,5,-1,-2,-3) var findNegative = false
var index = 0
var abLen =ab.length
while (index < abLen) {
if(ab(index) >=0 ){
index += 1
}else{
if(!findNegative){
findNegative = true;
index+=1
}else{
ab.remove(index)
abLen -=1
}
}
}
println(ab.mkString(","))
} def removeNegativeGood()={
val ab = ArrayBuffer[Int]()
ab+=(1,2,3,4,-1,-2,-3,-4,-5)
var foundNegative = false
val keepIndex = for (i <- 0 until ab.length if !foundNegative || ab(i) >= 0) yield {
if(ab(i) < 0 ) foundNegative = true
i
}
for (i <- 0 until keepIndex.length){
ab(i) = ab(keepIndex(i))
}
ab.trimEnd(ab.length - keepIndex.length)
println(ab)
} }

  

scala中ArrayBuffer简单使用的更多相关文章

  1. scala中Array简单实用

    /** * 在scala中数组的使用 * 和java很类似,初始化后,长度就固定了,而且元素全部根据其类型初始化 * */ object arrayUse { def main(args: Array ...

  2. scala中Tuple简单使用

    /** * Tuple简单使用记录 * 最大22个参数 */ object TupleUse { def main(args: Array[String]): Unit = { // 简单Tuple ...

  3. scala中Trait简单使用

    trait Log { def log(message:String) = println("log:" + message) } /** * 为实例混入trait * */ tr ...

  4. scala中函数简单使用记录

    object funcHighLevel { def main(args: Array[String]): Unit = { // 创建一个匿名函数 val sayFunc = (name: Stri ...

  5. Scala中的IO操作及ArrayBuffer线程安全问题

    通过Scala对文件进行读写操作在实际业务中应用也比较多,这里介绍几种常用的方式,直接上代码: 1. 从文件中读取内容 object Main { def loadData(): Array[Stri ...

  6. (转)Scala中协变(+)、逆变(-)、上界(<:)、下界(>:)简单介绍

    看源码的时候看到: trait ExtensionId[T <: Extension] { 没见过这个符号啊<: Scala上界(<:)和下界(>:) 1) U >: T ...

  7. scala中的闭包简单使用

    object Closure { /** * scala中的闭包 * 函数在变量不处于其有效作用域内,还能够对变量进行访问 * * @param args */ def main(args: Arra ...

  8. scala 中List的简单使用

    /** * scala 中List的使用 * */ object ListUse { def main(args: Array[String]): Unit = { def decorator(l:L ...

  9. 2. scala中的数组

    一. 数组声明 定长数组 scala> new Array[String](5) res1: Array[String] = Array(null, null, null, null, null ...

随机推荐

  1. LBP算子

    LBP算子特点 LBP(Local Binary Pattern),即局部二值模式,属于一种图像预处理算法,具有光照不变性和旋转不变性. 我目前做的项目是人脸表情识别,采用这种算法可以减少光照和人脸旋 ...

  2. Til the Cows Come Home(spfa做法)

    题目题目描述贝茜在谷仓外的农场上,她想回到谷仓,在第二天早晨农夫约翰叫她起来挤奶之前尽可能多地睡上一觉.由于需要睡个好觉,贝茜必须尽快回到谷仓.农夫约翰的农场上有N(2≤N≤1000)个路标,每一个路 ...

  3. mysql的索引方法btree和hash的区别

    原文链接: http://www.91w.net/database/330.html 1. Hash索引: Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引 ...

  4. java oop第15章_Socket网络编程

    一.   TCP/IP协议(Transmission Control Protocol/Internet Protocol)传输控制协议/Internet协议,是通信领域的基础.核心协议, 其他的协议 ...

  5. 74HC595点亮8个LED灯

    一.原理介绍 595有两个寄存器,都是8位的,如下所示: 595是串入并出带有锁存功能移位寄存器,它的使用方法简单: - -  在正常使用时 /SCLR接高电平,/G接低电平. - -  从SER每输 ...

  6. Linux 进程间通信 信号(signal)

    1. 概念: 1)信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式 2)信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件. 3)如果 ...

  7. BCZM : 1.9

    有n个学生参加见面会,分别对m个研究组中的若干个感兴趣,为了满足所有学生的要求,每个学生都能参加自己感兴趣的见面会,如果每个见面会的时间为t,如何安排才能使得所有见面会的总时间最短? 分析: 先建立模 ...

  8. python 爬取豆瓣电影短评并wordcloud生成词云图

    最近学到数据可视化到了词云图,正好学到爬虫,各种爬网站 [实验名称] 爬取豆瓣电影<千与千寻>的评论并生成词云 1. 利用爬虫获得电影评论的文本数据 2. 处理文本数据生成词云图 第一步, ...

  9. 初始化css样式

    html,body,div,ul,li,ol,a,input,textarea,p,dl,dt,dd{margin:0;padding:0;} ul li{list-style: none;} a{t ...

  10. zabbix active模式以及自定义key not Supported的解决

    zabbix active模式 active模式适用场景 zabbix server端无法直连agent端,比如agent为内网机器,仅有内网ip,没有公网ip,但是内网机器能够访问server端 a ...