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