scala数组

声明数组

语法格式

var ArrayName  :  Array[DataType] = new Array[DataType](length)
或
var ArrayName    =  new Array[DataType](length)
或
var ArrayName    = Array("data1", "data2", "data2")

数组赋值

//根据下标赋值
var arr=  new Array[String](3)
arr[0] = "刘备"
arr[1] = "关羽"
arr[2] = "张飞" 

多维数组

语法格式
导包

import Array._ 

var ArrayName  :  Array[DataType] = new Array[DataType](row,line)
或
var ArrayName    =  new Array[DataType](row,line)

数组赋值

//通过循环进行赋值
import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

在这里插入图片描述

数组合并

通过concat方法对数组进行连接

import Array._

object Test {
   def main(args: Array[String]) {
      var list1= Array("zhang","fei","ai","shang")
      var list2= Array("tang","san","zang")

      var list3=  concat( list1, list2)
      
      // 输出所有数组元素
      for ( x <- list3) {
         print( x + "  ")
      }
   }
}

在这里插入图片描述

创建区间数组

使用了range()方法来生成一个区间范围内的数组。range() 方法最后一个参数为步长,默认为 1。

import Array._

object Test {
   def main(args: Array[String]) {
	   //range(start,end,step)
      var list1 = range(10,20, 2)
      var list2 = range(10,20)

      // 输出所有数组元素
      for ( x <- list1 ) {
         print( " " + x )
      }
      println()
      for ( x <- list2 ) {
         print( " " + x )
      }
   }
}

在这里插入图片描述

变长数组

需要引入包 import scala.collection.mutable.ArrayBuffer

import scala.collection.mutable.ArrayBuffer
//创建可变数组
val b = ArrayBuffer[Int]()
//向数组中第n位添加数字
b += 1
//1
//向数组中追加n位数字
b += (2,3,4,5)
//1,2,3,4,5
//利用++=向数组中追加集合数据
b ++= Array(6,7,8)
//1,2,3,4,5,6,7,8
//移除最后n位数据
b.trimEnd(3)
//1,2,3,4,5
//在下标n之前插入数据
b.insert(2,5)
//1,2,5,3,4,5
b.insert(2,6,7,8)
//1,2,6,7,8,5,3,4,5
//移除下标n之后的数据(第二位表示移除的位数)
b.remove(2,1)
//1,2,7,8,5,3,4,5
b.remove(2,3)//数据不存在不会报错,并且将匹配的数据删除
//1,2,3,4,5
b.append(6,7,8)//在末尾追加数据
//1,2,3,4,5,6,7,8
//数据不存在不会报错,并且将匹配的数据删除
b -= 2//移除大小为2的数据
//1,3,4,5,6,7,8
b -=(3,4)//移除大小为3和4的数据
//1,5,6,7,8
b --=Array(4,5,6)//移除集合数据,
//1,7,8
b -=(2,7)
//将数组转换成数组缓存
val a = b.toBuffer
//循环遍历
for(i <- 0 until a.length)
println(i + ": " + a(i))
//1,8
//循环遍历
for(elem <- a)
println(elem)

数组排序

import scala.collection.mutable.ArrayBuffer//导入创建可变数组
object Test{
	def main(args:Array[String]){
		var a = ArrayBuffer[Int]()
		a ++= Array(1,2,5,3,4,5,0,-2,-1,-5,-7)
		exchange(a)
		}
		def exchange(a:ArrayBuffer[Int]){
			var b = ArrayBuffer[Int]()
			var c = ArrayBuffer[Int]()
			
			for(elem <- a){
			if(elem >= 0)
				//将大于等于0的数据放入b中
				b += elem;
			if(elem < 0)
				//将小于0的数据放入c中
				c += elem
			}
			b = b.sorted//按小到大自然排序
			c = c.sorted.reverse//按大到小排序
			println(b)
			println(c)
		}
}

猜你喜欢

转载自blog.csdn.net/a_6_9_z/article/details/90032169