package scala.org
import scala.util.Random
/**
* Created by wuyanru on 2017/1/3.
* 1. 1. 编写一段代码,将a设置为一个包含n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间
*/
object test33 extends App{
createArr(19).foreach(println)
def createArr(n:Int):Array[Int]={
var arr=new Array[Int](n);
var rand=new Random()
for(ele <- arr)
yield rand.nextInt(n)
}
}
package scala.org
/**
* Created by wuyanru on 2017/1/3.
* 2. 编写一个循环,将整数数组中相邻的元素置换。例如,Array(1,2,3,4,5) 经过置换后变为Array(2,1,4,3,5)
* 3. 重复前一个练习,不过这一次生成一个新的值交换过的数组。用for/yield
*/
object test3 extends App{
var a= Array[Int](12,4,5,3,5,7,8)
SwapYield(a)
a.foreach(println)
def SwapYield(arr:Array[Int]):Unit={
for(i <- 0 to arr.length) yield{
if (i<(arr.length-1) && i%2==0){
val tmp=arr(i)
arr(i)=arr(i+1)
arr(i+1)=tmp
}
arr(i)
}
}
}
package scala.org
import scala.collection.mutable.ArrayBuffer
/**
* Created by wuyanru on 2017/1/3.
* 4. 给定一个整数数组,产出一个新的数组,包含元数组中的所有正值,以原有顺序排列,
* 之后的元素是所有零或负值,以原有顺序排列
*/
object test4 extends App{
var a= Array[Int](12,-4,-5,3,5,7,8,0,89)
var b=sigArr(a)
b.foreach(println)
def sigArr(arr:Array[Int])={
val buff =new ArrayBuffer[Int]()
buff++=(for(ele<- arr if ele>0) yield ele)
buff++=(for(ele<- arr if ele==0) yield ele)
buff++=(for(ele<- arr if ele<0) yield ele)
buff.toArray
}
}
package scala.org
import scala.collection.mutable.ArrayBuffer
/**
* Created by wuyanru on 2017/1/3.
* 如何计算Array[Double]的平均值
* 之后的元素是所有零或负值,以原有顺序排列
*/
object test5 extends App{
var a= Array[Int](12,-4,-5,3,5,7,8,0,89)
println(avr(a))
def avr(arr:Array[Int]):Double={
var sum=0;
arr.foreach(sum+=_)
sum/arr.length
}
}
package scala.org
import scala.collection.mutable.ArrayBuffer
/**
* Created by wuyanru on 2017/1/3.
* 如何计算Array[Double]的平均值
* 之后的元素是所有零或负值,以原有顺序排列
*/
object test5 extends App{
var a= Array[Int](12,-4,-5,3,5,7,8,0,89)
println(avr(a))
def avr(arr:Array[Int]):Double={
arr.sum/arr.length
}
}
package scala.org
import scala.collection.mutable.ArrayBuffer
/**
* Created by wuyanru on 2017/1/3.
* 6. 如何重新组织A r r a y [ I n t ] 的元素将它们以反序排列,对于ArrayBuffer[Int]你又会怎么做呢
*/
object test6 extends App{
var a= Array[Int](12,-4,-5,3,5,7,8,0,89)
reverse(a)
a.foreach(println)
var buf=ArrayBuffer(1,2,3,4,5,6,7,8)
var result=ArrayBuffer[Int]()
result++=buf.reverse
result.foreach(println)
def reverse(arr:Array[Int]){
val len=arr.length
for(i<- 0 until len/2){
var t=arr(i)
arr(i)=arr(len-i-1)
arr(len-i-1)=t
}
}
}
package scala.org
import scala.collection.mutable.ArrayBuffer
/**
* Created by wuyanru on 2017/1/3.
* 7. 编写一段代码,产出数组中的所有值,去掉重复项。(提示:查看Scaladoc)
*/
object test7 extends App{
var buf=ArrayBuffer(1,2,3,3,5,6,8,8)
var result=ArrayBuffer[Int]()
result++=buf.distinct
result.foreach(println)
}
package scala.org
import scala.collection.mutable.ArrayBuffer
/**
* Created by wuyanru on 2017/1/3.
* 7. 编写一段代码,产出数组中的所有值,去掉重复项。(提示:查看Scaladoc)
*/
object test8 extends App{
var buf=Array(1,2,3,-3,5,6,-8,8)
var b=delRevFirst(buf)
b.foreach(println)
def delRevFirst(arr:Array[Int])={
val indexs=for(i<-0 until arr.length if arr(i)<0) yield i
val dropindexs=indexs.reverse.dropRight(1)
val tmp=arr.toBuffer
for(index <- dropindexs)
tmp.remove(index)
tmp
}
}
package scala.org
/**
* Created by wuyanru on 2017/1/3.
* 7. 编写一段代码,产出数组中的所有值,去掉重复项。(提示:查看Scaladoc)
*/
object test9 extends App{
val a=TimeZone()
a.foreach(println)
def TimeZone()={
val arr = java.util.TimeZone.getAvailableIDs()
val tmp=for(ele<- arr if ele.startsWith("America/")) yield{
ele.drop("America/".length)
}
scala.util.Sorting.quickSort(tmp)
tmp
}
}