2013-02-13 66 views
0

我試圖把它複製到陣列,但我不能接受兩個臺(套)參數請幫我實現的子集功能

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的功能子集,並做相同的,但不設置

+3

我不知道你是什麼的問題。請儘量提高英語水平。 – 2013-02-13 06:52:48

+1

此外,'Array'很少有理由,如果有的話,實際上不可能有很多幫助編寫子集算法。最後,標準庫「Set」已經定義了「subsetOf」來測試兩個Set之間的子集關係是否成立。 – 2013-02-13 16:23:27

回答

0

您可以將SetArrayArraySet

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)