请帮我实现子集功能

时间:2013-02-13 06:42:44

标签: arrays scala

我试图将它复制到数组,但我不能接受两个(集)参数

def subset(a:Set[Int],b:Set[Int]):Boolean={
    var x = new Array[Int](a.size)
    var y = new Array[Int](b.size) 
  }

或者你能解释一下如何接收两个数组作为参数吗?

def main(args: Array[String]): Unit = {
    val a =  Set(2,3,4,5,6)
    val b = Set(2,3,4,5)
    var x = new Array[Int](a.size)
    var y = new Array[Int](b.size)

我希望将x和y放在函数子集中并执行相同操作,但不能通过Set

1 个答案:

答案 0 :(得分:0)

您可以将Set转换为ArrayArray转换为Set

scala> val array = Array(1, 3, 5)
array: Array[Int] = Array(1, 3, 5)

scala> array.toSet
res0: scala.collection.immutable.Set[Int] = Set(1, 3, 5)

scala> val set = Set(7, 3, 8)
set: scala.collection.immutable.Set[Int] = Set(7, 3, 8)

scala> set.toArray
res1: Array[Int] = Array(7, 3, 8)

如果您希望程序将Int的集合作为命令行参数,则必须解析字符串:

object Test extends App {
  val x: Array[Int] = args(0).split(",").map{ _.toInt }
  val y: Array[Int] = args(1).split(",").map{ _.toInt }
  println("x: " + x.mkString("Array(", ", ", ")"))
  println("y: " + y.mkString("Array(", ", ", ")"))
}

用法:

>scala Test "1,2,3" "10,0,-5"
x: Array(1, 2, 3)
y: Array(10, 0, -5)