scala练习3

//定长数组
val a = Array("Hello","hi")
a

val b = new Array[Int](10)
b(1) =1

//变长数组
import scala.collection.mutable.ArrayBuffer
val c = ArrayBuffer[Int]()
c +=1  //尾端追加数据
c +=(1,2,3,4) //
c ++=Array(8,12,11)//可以追加任何集合

c
//移除尾部数
c.trimEnd(1)
c

//在任意位置插入元素
c.insert(2,22)
c
//移除第三个起的一个元素
c.remove(2,1)
c

//构建数组
c.toArray

//遍历数组
0 until 10

0 until (10,2)
//是一个richInt类方法返回0<= <10的数字
for (i <- 0 until (c.length,2))
  println(c(i))


for (elem <- c) println(elem)

//数组转换
val aa = Array(2,3,4,7,11)
val result = for (elem <- aa) yield 2*elem

for (elem <- aa if elem % 2 ==0) yield 2*elem

//等价于
aa.filter(_ % 2==0).map(_*2)

//剔除除了第一个数字为负数外的负数
val bb = Array(9,-1,2,3,4,-3,2,-4)
var first = true
val index = for (i <- 1 until bb.length if first || bb(i) > 0) yield {
    if (bb(i) < 0) first = false
    i
}

//移动元素
for (j <- 0 until index.length) bb(j) = bb(index(j))
bb


//常用suanffa
Array(1, 7,2,9).sum
Array(1, 7,2,9).max

Array(1,7,2,9).sorted

Array(1,7,2,9).sortWith(_>_)

Array(1,7,2,9).mkString(" and ")

Array(1,7,2,9).mkString("<",",",">")

Array(1,7,2,9).toString()
ArrayBuffer(1,7,2,9).toString()

//解读scaladoc
import scala.collection.immutable._
bb
//bb.append(1,2,3,4)

//1编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间
import scala.math.random

def randomArray(n:Int) ={
   for ( i <- 1 until n) yield (random * n)
}

randomArray(10)
1 until (bb.length,2)

var temp =0
for (i <- 0 until (bb.length-1,2) ){
  if (i != bb.length)
   { temp = bb(i)
    bb(i) = bb(i+1)
    bb(i+1) = temp}
}
bb


//
println("----调换顺序----------------------------------")
bb
val cc =for (i <- 0 until bb.length-2  ) yield {
  if (i % 2 ==0) bb(i+1)
  else if (i != bb.length-1) bb(i-1)
  else bb(i)
}
cc

def reorderArray(arr:Array[Int]):Array[Int]={
  val a = arr.filter(p=>p>0)
  val b = arr.filter(p=>p<=0)

  a++b
}

reorderArray(Array(1,2,3,-3,-4,2,0))

//qiujunzhi
val c35 = Array(1,1.2,3,4)
c35.sum/c35.length

//反序排列
import scala.util.Sorting.quickSort
quickSort(a)
a.reverse
val c35b = c35.toBuffer
c35b.sortWith(_>_).reverse

// 编写一段代码,产出数组中的所有值,去掉重复项。(提示:查看Scaladoc)
//产出数组的代码就不编写了。去重只需要调用api即可
c35.toBuffer.distinct.toArray



//重新编写3.4节结尾的示例。收集负值元素的下标,反序,去掉最后一个下标,然后对每个下标调用a.remove(i)。比较这样做的效率和3.4节中另外两种方法的效率
var i= -1
val arr = ArrayBuffer(1,2,3,-3,0,-4,1)
//def removeArray(arr:Array[Int])={
  val ind =arr.map(p=>{i+=1;(i,p)}).filter(p=>{p._2<0}).map(p=>{p._1})
  val  indA = ind.toBuffer
  indA.remove(0)
  indA-1
  indA.foreach(arr.remove(_))
  arr

import java.util.TimeZone.getAvailableIDs
getAvailableIDs

//
import java.awt.datatransfer._
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值