У меня есть 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)).
Мне было интересно если есть более эффективный способ добавления и вычитания данных в более эффективную структуру данных.