//定长数组
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._
scala练习3
最新推荐文章于 2024-04-21 19:05:27 发布