比较两个多图并替换/删除值

时间:2018-03-26 15:03:54

标签: java multimap

我有两个带有ID和名称的多图,一个填充了我从远程服务获得的信息,第二个信息包含我在本地数据库中的信息。我需要比较和同步它们。

Multimap<Long, String> remote
Multimap<Long, String> localDB

我们可以假设id总是相同但名称可以变化,例如:

remote = {1 = [Tom], 2 = [Bob , Ron], 3 = [Philip]}
local = {1 = [Tom], 2 = [Johan, Robert], 3 = [Susan]}

我期望获得的是:

local = {1 = [Tom], 2 = [Bob , Ron], 3 = [Philip]}

我怎么能得到它?

1 个答案:

答案 0 :(得分:0)

从上面的评论中扩展选项,并假设您只是将远程同步到本地,您至少有三个不同的选项:

  • 在另一个列表上设置一个列表:local = remote;
  • 从本地移除所有不在远程的值,然后执行local.putAll(remote);
  • 将内容从远程复制到本地:local = ImmutableListMultimap.copyOf(remote);