我有一个变量品牌,类型和日期pojo,我创建了一个使用这个pojo的Arraylist。这ArrayList是重复的,现在我想通过仅比较该对象的品牌和类型来删除arraylist中的重复。如果品牌和类型已经存在,我需要从arraylist中删除该对象。如何比较java中arraylist对象的两个变量
0
A
回答
0
覆盖equals()& hahscode(根据您的变量添加类),然后使用LinkedHashSet,而不是ArrayList的和所有的工作都将自动完成。
+0
它的工作表示感谢 –
0
如果您无法或不愿意更改POJO的equals()
方法,则必须使用Map来为每个不同的品牌+类型对收集一个样本。
下面是一个例子代码段此使用流,其作用:
list = new ArrayList(list.stream().unordered()
.collect(Collectors.toMap(
pojo -> new Pair<>(pojo.brand, pojo.type),
pojo -> pojo,
(original, duplicate) -> original)).values());
或者,也可以包装在一个包装对象定义仅基于品牌和类型equals
每个POJO,然后用简单的distinct()
流过滤器,最后解开每个结果。
相关问题
- 1. 比较两个对象,java
- 2. 如何在java中比较两个不同的列表对象?
- 3. 如何比较java中的两个Arraylist值?
- 4. 如何比较两个独立对象中的两对整数?
- 5. 如何比较两个数组对象
- 6. 如何打字比较两个对象?
- 7. 如何比较两个对象数组
- 8. 如何比较两个复杂对象?
- 9. 我如何比较两个对象
- 10. 如何比较两个Struct对象?
- 11. PHP - 比较两个变量
- 12. 比较两个bash变量
- 13. 变量中的比较对象输出
- 14. 如何比较EL表达式语言中的两个对象变量?
- 15. 比较两个ArrayList中的两种比较?
- 16. 比较两个对象。
- 17. 比较两个对象
- 18. 比较两个对象
- 19. 比较两个对象
- 20. 比较两个Doctrine_Record对象
- 21. 使用.equals()来比较两个对象的变量
- 22. 比较长的对象ArrayList中
- 23. 比较arduino中的两个双变量
- 24. 比较SSIS中的两个变量
- 25. 如何从基于Java对象的一个成员变量的另一个ArrayList中的ArrayList中删除对象?
- 26. 比较Laravel中的两个对象
- 27. 比较ArrayList中的两个字符串
- 28. Arraylist对比较?
- 29. 比较两个整型变量转换为对象吗?
- 30. 如何在java中比较对象?
你可以有一个代码片段或代码示例? – msagala25
覆盖equals()&hahscode()并使用list1.removeAll(list2) – developer
如果具有相同的品牌和类型(不看日期),执行'equals()'声明两个对象相等。结果,'hashCode()'也不应该看日期。 –