【问题标题】:Comparing two list which contains same POJO and update比较包含相同 POJO 和更新的两个列表
【发布时间】:2019-04-30 13:28:05
【问题描述】:

我有两个包含相同类型 POJO 对象的列表。但是其中一个列表的 POJO 对象被修改了,所以我应该通过比较其名称来更新也包含相同 POJO 对象的其他列表。

例子:

列表 1 包含 100 辆汽车..

列表 2 也包含相同的 100 辆汽车

(模型对象。但在列表 2 中,一些汽车(模型)对象被修改。因此需要更新列表 1 中的这些值。

除了迭代还有其他方法可以有效地进行比较并更新另一个列表中的 POJO 对象

【问题讨论】:

  • 两个列表是否总是包含相同的元素?
  • Yes raj 相同的 POJO 对象...具有相同的参数集...(示例)列表 1 包含 ...5 POJO,如 Toyoto、Maruti、Amaze 添加列表 2 也包含相同的 POJO对象......但是在列表 2 中,Maruti 已经更新了它的值......比如说引擎类型......这个参数比较应该与列表 1 的 maruti 对象发生......如何有效地进行比较而不是迭代

标签: java database dao


【解决方案1】:

如果您的列表将始终包含相同的对象,您可以捕获一个侦听器以更新第一个列表并更新该侦听器中的第二个列表。

【讨论】:

  • 让我进一步澄清我的问题...列表 1 包含属于一个系统的 POJO 对象。其中列表 2 包含属于不同系统的 POJO 对象。我的要求是否在 SYSTEM 2 发生与任何 POJO 对象相关的更新,这些 POJO 对象应该在 SYSTEM 1 同步。例如,在系统 2 中,一个汽车对象对引擎类型进行了更新,该引擎类型应该在 SYSTEM 1 更新那个特定的仅限 CAR 对象 ..基于名称比较 -
  • 在这种情况下,侦听器模式应该适合您... SYSTEM1 可以侦听 SYATEM2 上发生的任何更新...获取更新详细信息并相应更新自身
【解决方案2】:

您可以拥有与下面相同的参考对象,但需要更多的说明才能解决问题。

List<MyClass> list1=new List<>();
List<MyClass> list2=new List<>();
MyClass obj = new MyClass();
list1.add(obj);
list2.add(obj);

如果您在 obj 中编辑任何值,这将在两个列表中更改,因为我们有参考。但我不是您要找的。​​p>

【讨论】:

  • 让我进一步澄清我的问题...列表 1 包含属于一个系统的 POJO 对象。其中列表 2 包含属于不同系统的 POJO 对象。我的要求是否在 SYSTEM 2 发生与任何 POJO 对象相关的更新,这些 POJO 对象应该在 SYSTEM 1 同步。例如,在系统 2 中,一个汽车对象对引擎类型进行了更新,该引擎类型应该在 SYSTEM 1 更新那个特定的仅限 CAR 对象 ..基于名称比较
  • 对不起,实际要求是我必须比较两个列表的每个 POJO 对象(这是两个不同的系统,但具有相同名称的相同模型对象)并进行所有参数比较..对于每个 POJO当案例出现时,对象的一个​​ POJO 对象的特定参数已在 SYSTEM 2 中修改,然后我必须使用名称比较 System 1 中的相同 POJO 对象,然后必须检查该特定参数是否具有与 SYSTEM 2 相同的更新值....有没有什么有效的方法可以用最少的代码进行这种比较..
  • 添加示例假设列表 1 包含 5 辆汽车 toyoto、Maruti、Honda,而列表 2 也包含相同的三辆汽车...但在列表 2 ...Maruti 更新了一个参数...现在我想比较系统 1 (list1) 的 Maruti POJO 和 List 2 的更新参数 ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多