讓我們假設我有兩個或多個數組/列表包含相同的元素,但順序不同。量化數組之間的差異order
MyClass[] array1 = new MyClass[] {obj1, obj2, obj3, obj4};
MyClass[] array2 = new MyClass[] {obj1, obj4, obj2, obj3};
我需要比較的算法和計算元素的順序差異在陣列中,是這樣的:
double likeness = ArraysOrderComparator.compare(array1, array2);
我認爲有不同的方法來做到這一點。 基本上,我想定義一個度量來比較不同數組的順序。 我敢打賭一些算法已經存在,有人可以給我一個提示嗎? 我需要在java代碼中實現它。
定義'訂單差異'。例如,你會期望「相似」等於什麼? –
比較訂單肯定有多種方式,但正確的解決方案可能需要更好地瞭解比較的用途。一個基本的想法可能是簡化這樣的事實,即你的數組實際上只是字符串,你可以使用任何字符串差分算法(如漢明距離)。我假設你的情況('1234','1423')會比說('1234','1243') – RudolphEst
更不相似。其實我需要探索不同的方式來計算'相似性',所以我想有關鍵字谷歌有關它的一些理論! 爲了我的目的,我應該更重視相對順序差異而不是絕對順序('1234'應該更接近'1423'而不是'1432') – blian