我有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)时间内运行)。
我想知道是否有更有效的方法来将数据添加到更有效的数据结构中。
答案 0 :(得分:0)
如果您只想将数据放在未排序的集合中,可以使用HashSet
,如果您希望对其进行排序,则可以使用TreeSet
。 TreeSet
需要一个实现Comparable
的类 - 如果你只是使用字符串或整数,你应该没问题。您可以在Java Doc: Set