记录用,避免忘记
1.生成数组,可以用scala提供的scala.util.random方法,该方法提供了nextInt(int)就是用来获取之间的整数的,具体可查看scaladoc
def RandArray(n:Int):Array[Int] = {
var a=new Array[Int](n);
val s=scala.util.Random;
for(i<- 0 until a.length){
a(i)=s.nextInt(n);
}
a;
}
2.交换数组相邻元素
for(i<- 0 until (s.length,2)){
if(i+1<s.length){
val t=s(i);
s(i)=s(i+1)
s(i+1)=t;
}
}
3.用for yield生成新数组
val d=for(i<- 0 until s.length) yield{
if(i%2==0){
if(i+1<s.length){
var t=s(i);
s(i)=s(i+1);
s(i+1)=t;
}
}
s(i);
}
4.记住用clone来保存原始数组
val s=Array(1,-1,2,4,-3,0,5);
println("hello world");
val d=for(i<- 0 until s.length;if(s(i)>0)) yield{
i;
}
val e=for(i<- 0 until s.length;if(s(i)<=0)) yield{
i;
}
var m=0;var n=0;val f=s.clone();
val g=for(i<- 0 until s.length) yield{
if(m<d.length){
s(i)=f(d(m));
m=m+1;
}else{
s(i)=f(e(n));
n=n+1;
}
s(i);
}
for(i<- 0 until g.length){
println(g(i));
}
5.计算array的平均值
var avg=0;
for(i<- 0 until g.length){
avg=avg+g(i);
}
avg=avg/g.length.toDouble
6.只需要使用reverse即可,列子:a.reverse
7.去掉数组中重复项使用distinct方法即可
8.
def removeArray(array: Array[Int]){
val t = array.toBuffer
val index = for (i <- 0 until array.length if array(i) < 0) yield i
val right = index.reverse.dropRight(1)
right.foreach(t.remove(_))
print(t)
}
val a = Array(1,3,-3,-5,-7,3,2,1)
removeArray(a)
9.
val s=java.util.TimeZone.getAvailableIDs;
val e=for(i<- 0 until s.length;if s(i).contains("America/")) yield{
s(i).diff("America/");
}
e.sorted.foreach {println(_)}
10.
val flavors = SystemFlavorMap.getDefaultFlavorMap().asInstanceOf[SystemFlavorMap]
println(flavors.getNativesForFlavor(DataFlavor.imageFlavor).toArray.toBuffer.mkString(" | ")