猛禽洛的程式筆記庫

[Android] Kotlin 比對兩個陣列元素是否相同

有時候我們會需要比較兩個陣列中的每個元素的「值」是否相等,例如比較ByteArray中的數字是否相等,最直覺的方式就是使用for迴圈一個一個比較,但是這樣會多很多行數跟判斷式,當比較的陣列一多時就顯得攏長。

如果是用Kotlion做開發,在Kotlion 1.1以後的版本,就有快速比較兩個陣列的「值」是否相等的方法了!

此方法叫做:contentEquals

使用方式:

val aryA = intArrayOf(100, 200, 300)
val aryB = intArrayOf(100, 200, 300)
val aryC = intArrayOf(100, 201, 300)
val aryD = intArrayOf(100, 200)
Log.d("aryA與aryB元素比較", (aryA contentEquals aryB).toString())
Log.d("aryA與aryC元素比較", (aryA contentEquals aryC).toString())
Log.d("aryA與aryD元素比較", (aryA contentEquals aryD).toString())

結果:

D/aryA與aryB元素比較: true
D/aryA與aryC元素比較: false
D/aryA與aryD元素比較: false

這樣就輕鬆達成我們要的目標啦!

小注意:equals()方法比較的是記憶體引用位置,是不能直接比較元素值相等的喔!

-END-

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *