陣列比較是否相同

2021-06-14 07:25:58 字數 1431 閱讀 3071

環境:陣列a 和陣列b

int

arraya

=new

;int

arrayb

=new

;

我們需要比較的是

陣列的內容,而不是陣列的

物件引用所以我們不能想當然的用

array.equals(

arraya

,arrayb

)(結果為false)

現在我們來看看怎樣比較陣列的內容,當然你可以用迴圈來比較,在此我們就不談迴圈比較的方法了。現在我們看看其他的方法:

方法一:利用泛型方法

static bool arraysequal<

t>(t a1, t a2)  

return true;  

}  

static bool arraysequal(t a1, t a2)

return true;

}

方法二:enumerable

.sequenceequal的擴充套件方法:確定兩個序列是否相等的相等比較

。(要求3.0以上)具體可以檢視msdn:當然他的適用範圍更廣。

bool equals = arraya.orderby(a

=> a).sequenceequal(arrayb.orderby(a => a));

方法三:利用linq方法查詢交集的資料比較個數

var q = from a in arraya  

join b in arrayb  on a equals b  

select a;  

bool equals1 = arraya

.length == arrayb .length && q.count() == arraya.length;  

var q = from a in arraya

join b in arrayb on a equals b

select a;

bool equals1 = arraya.length == arrayb .length && q.count() == arraya.length;

方法四:泛型篩選方法中all

var set = new hashset(arraya);

bool allthere =  arrayb.all(set.contains);

方法五:利用數學的思想利用交集和並集的思路

bool equals3 = arraya.intersect(arrayb).count() ==arraya.union(arrayb).count();

陣列比較是否相同

環境 陣列a 和陣列b int arraya new int arrayb new 我們需要比較的是陣列的內容,而不是陣列的物件引用所以我們不能想當然的用array.equals arraya,arrayb 結果為false 現在我們來看看怎樣比較陣列的內容,當然你可以用迴圈來比較,在此我們就不談迴...

比較兩檔案是否相同 cmp diff

cmp file1 file2 cmp比較兩個檔案,給出差別字元的位置和行號。比較方法 對兩個檔案的比較是逐字比較的。diff file1 file 比較兩個不同的檔案或不同目錄下的兩個同名檔案。比較方法 diff試圖找到file1和file2中連續相同行,這些相同行被改名為hunk的差別行所隔開。...

php比較兩個二維陣列是否相同,多維陣列

幾天前跟同事討論乙個很有趣的問題,一直想寫下來結果總沒有時間,今天終於有時間了。如題 php如何比較兩個二維陣列是否相同?這個問題我在群裡也問了很多人,大多數就是遍歷了 有的人遍歷一次,有的人遍歷兩次。大概就是 foreach arr1 as k v 大概就是這個邏輯,還有需要細化的地方我就不多寫了...