2013-10-29 62 views
0

如果我有2個數組,我該如何比較它們並返回最小數組的大小?這裏是我的意思是:在Scala中比較2個數組的大小

val a = Array(1,2,3) 
val b = Array(1,2,3,4) 

有一些運營商,我可以打電話來比較兩者的尺寸,並返回3,因爲數組一個是小,有3個要素是什麼?

回答

3
scala> val a = Array(1,2,3) 
a: Array[Int] = Array(1, 2, 3) 

scala> val b = Array(1,2,3,4) 
b: Array[Int] = Array(1, 2, 3, 4) 

scala> math.min(a.length, b.length) 
res0: Int = 3 
+0

我想通了,並用於: 如果(a.size> b.size)b.size其他a.size 其工作爲好,但謝謝你。 – user2516663

0
scala> val a = Array(1,2,3) 
a:Array[Int] = Array(1,2,3) 

scala> val b = Array(1,2,3,4) 
b:Array[Int] = Array(1,2,3,4) 

scala> a.size min b.size 
res0: Int = 3 

大小方法獲取該數組的大小和min是兩個尺寸之間的比較器功能。與使用兩個參數的任何函數一樣,您可以通過在參數之間放置函數名稱來調用它。

min正在做的隱式轉換(一組方法,這些方法的Scala嘗試當它遇到所使用的錯誤類型的對象適用)從IntRichInt

+2

您可能需要強調min方法來自Int [RichInt](http://www.scala-lang.org/api/current)的[隱式轉換](http://take.ms/IEYWIE) /index.html#scala.runtime.RichInt) –

+0

請注意,min不是一個運算符,而是一個帶有兩個參數的函數。你可以通過在參數之間加入函數名來調用它。這適用於所有需要兩個參數的功能。 –

+0

謝謝。我相應地調整了我的答案。 – djcastr0

0

更通用的方法,假設您想比較相同類型的序列。

def getSmallerCollectionSize[T](a:Seq[T],b:Seq[T]) = 
     Math.min(a.size, b.size) 
+0

因爲它現在是非常低的質量。請添加一些解釋以改進您的答案,並使其對未來的讀者也有用,而不僅僅是OP。 –