In [1]:
println(s"""Details of exec env ==>
| ${util.Properties.versionMsg}
| ${util.Properties.javaVmName} ${util.Properties.javaVersion} ${util.Properties.javaVmVersion}"""
.stripMargin)
In [2]:
import math._
val n = 10
val random = scala.util.Random
val a = for (i <- 0 until n) yield random.nextInt(n)
a
Out[2]:
In [3]:
val array = Array(1, 2, 3, 4, 5)
array.grouped(2).flatMap(_.reverse).toArray
//array.grouped(2).map(_.reverse).flatMap(n => n).toArray
Out[3]:
In [4]:
(for {x <- array.grouped(2); y <- x.reverse} yield y).toArray
Out[4]:
In [5]:
val array = Array(-9, 0, 2, -22, 5)
val (a,b) = array.partition( _ > 0)
a ++ b
Out[5]:
In [6]:
val array = Array(9.43, -10.26, -0.9921, 15.09, 27.812, 1.56)
array.sum/array.length
Out[6]:
In [7]:
val array = Array(-9, 0, 2, -22, 5)
array.sortWith( _ > _)
Out[7]:
In [8]:
// For ArrayBuffer
val arrayBuffer = array.toBuffer
arrayBuffer.sortWith( _ > _)
Out[8]:
In [9]:
val array = Array(7, 1, 12, 0, 1, 20, 1, 12, 8, 1, 2, 9, 0)
array.distinct
Out[9]:
In [10]:
val array = Array(7, 1, 12, 0, 1, 20, 1, 12, 8, 1, 2, 9, 0)
array.toSet
Out[10]:
In [11]:
val array = Array(7, 1, 12, 0, 1, 20, 1, 12, 8, 1, 2, 9, 0)
val b = Array[Int]().toBuffer
for(i <- array; if !(b contains i)) b += i
b
Out[11]:
var first = true
var n = a.length
var i = 0
while (i < n) {
if (a(i) >= 0) i += 1
else {
if (first) {
first = false;
i += 1
}
else {
a.remove(i);
n -= 1
}
}
}
a.remove(i) for each index.
In [12]:
// Original: "complex and inefficient solution", but this performs better compared to the solutions below.
val a = Array(1, 9, 121, 71, 21, -5, 15, 0, -20, 10, -6, 9, 20, -2).toBuffer
var first = true
var n = a.length
var i = 0
while (i < n) {
if (a(i) >= 0) i += 1
else {
if (first) {
first = false;
i += 1
}
else {
a.remove(i);
n -= 1
}
}
}
a
Out[12]:
In [13]:
val a = Array(1, 9, 121, 71, 21, -5, 15, 0, -20, 10, -6, 9, 20, -2).toBuffer
val b = a.zipWithIndex.filter { case (elem, i) =>
elem < 0
}
b.remove(0)
val c = b.zipWithIndex.map { case (elem, i) =>
a.remove(elem._2 - i)
}
a
Out[13]:
In [14]:
val a = Array(1, 9, 121, 71, 21, -5, 15, 0, -20, 10, -6, 9, 20, -2).toBuffer
val b = a.zipWithIndex.filter(_._1 < 0)
b.remove(0)
val c = b.reverse
val d = c.map { case(_, i) =>
a.remove(i)
}
a
Out[14]:
In [15]:
println("TBC")
In [16]:
val lenToDrop = "America/".length
java.util.TimeZone.getAvailableIDs.filter(_.startsWith("America/")).map(_.drop(lenToDrop)).foreach(println) // No need to sort, it is already sorted.
java.awt.datatransfer._ and make an object of type SystemFlavorMap with the call.val flavors = SystemFlavorMap.getDefaultFlavorMap().asInstanceOf[SystemFlavorMap]
getNativesForFlavor method with parameter DataFlavor.imageFlavor and get the return value as a Scala buffer. (Why this obscure class? It’s hard to find uses of java.util.List in the standard Java library.)
In [17]:
import java.awt.datatransfer._
val flavors = SystemFlavorMap.getDefaultFlavorMap().asInstanceOf[SystemFlavorMap]
flavors.getNativesForFlavor(DataFlavor.imageFlavor)
Out[17]: