0
我有2個來源從中讀取數據。該數據可能是重複的,我需要通過從另一箇中減去2個集合來檢測這些重複項。 目前,我用List<Map<String, String> duplList
,所以當我插入重複的值:有效的數據結構來保存/添加/刪除重複項目
Map<String, String> map1 = new HashMap();
map1.put("1", "1");
map1.put("1", "1");
map1.put("1", "1");
duplList.add(map1);
Map<String, String> map2 = new HashMap();
map2.put("1", "1");
map2.put("1", "1");
duplList.add(map2);
後來減去他們:
Collection diff1 = CollectionUtils.subtract(map1, map2);
Collection diff2 = CollectionUtils.subtract(map2, map1);
我得到一個包含MAP1和MAP2之間的區別的對象。
雖然這個工作,它似乎不是很有效的我(因爲它在O(n)時間運行)。
我想知道是否有一個更有效的方式來增加和減少數據到更高效的數據結構。
你如何定義重複?重複的鍵或鍵值對?另外,如何在找到重複項目後解決衝突? –
如果我理解你正確,你可以使用add方法將你的「可複製」對象添加到Set。如果使用對象添加調用返回false,則該對象是重複的,因此將其存儲爲單獨的集合。 – Ilya
@SergeiLebedev重複被定義爲相同的鍵值巴黎,所以「1」 - >「1」是重複的,但是「1」 - >「2」不是。 – ocp1000