代码如下
def ans1( n: Int ): Array[Int] = {
1.to(n).map{ x => scala.util.Random.nextInt(n) }.toArray
}
代码如下
def ans2( a:Array[Int] ): Unit = {
for ( i <- 0.until(a.length-1,2) ) {
val t = a(i)
a(i) = a(i+1)
a(i+1) = t
}
}
代码如下
def ans3( a: Array[Int] ): Array[Int] = {
val swap_index = for( i <- 0.until(a.length) ) yield {
if ( i % 2 == 0 ) {
if ( i == a.length - 1 ) i else i + 1
}
} else {
i - 1
}
swap_index.map( i => a(i) ).toArray
}
代码如下
def ans4( a:Array[Int] ): Array[Int] = {
a.filter( _ > 0 ) ++ a.filter( _ < 0 )
}
代码如下
def ans5( d: Array[Double] ): Double = {
d.sum / d.length
}
在原位上修改
def ans6_array( a: Array[Int] ): Unit = {
for ( i <- 0.until(a.length/2) ) {
val t = a(i)
a(i) = a(a.length-i-1)
a(a.length-i-1) = t
}
}
def ans6_arraybuffer( a: ArrayBuffer[Int] ): Unit = {
a ++= a.reverse
a.remove( 0, a.length/2 )
}
可以使用 Array.distinct: Array[T]
方法去重
重构使方法如下:
def ans8( a: ArrayBuffer[Int] ): Unit = {
var negative_index = for ( i <- 0 until a.length if a(i) < 0 ) yileld i
for ( i <- negative_index.tail.reverse ) {
a.remove(i)
}
}
代码如下
for ( zone <- java.util.TimeZone.getAvailableIDs()
if zone.startsWith( "America/" ) )
yield zone.stripPrefix( "America/" )
代码示意如下
import java.awt.datatransfer._
import scala.collection.JavaConversions.asScalaBuffer
import scala.collection.mutable.Buffer
val flavors = SystemFlavorMap.getDefaultsFlavorMap().asInstanceOf[SystemFlavorMap]
val res: Buffer[String] = flavors.getNativesForFlavor( DataFlavor.imageFlavor )
println( res )