【发布时间】:2017-09-05 22:44:43
【问题描述】:
我有两个 ArrayList 作为:
ArrayOne
ClassPojo [Name ="XXX", FilterID = 4]
ClassPojo [Name = "ZZZ", FilterID = 5]
数组二
ClassPojo [Name = "XXX", FilterID = 4]
但是当尝试使用时:
Arrays.asList(ArrayOne).contains(ArrayTwo )
或
ArrayOne().containsAll(ArrayTwo)
它返回假, 我知道比较是基于参考而不是价值平等 但我怎么能通过价值观做到这一点 请注意:我想使用 conatinsAll ,因此如果在 ArrayOne 的某些部分找到 arrayTwo 的内容,则返回 true 。
【问题讨论】:
-
您正在使用非常不同的方法签名。包含:docs.oracle.com/javase/8/docs/api/java/util/… 用于 ClassPojo 元素,而不是列表。 containsAll -docs.oracle.com/javase/8/docs/api/java/util/… - 确实需要一个列表,但正如下面许多 cmets 中提到的,您需要实现 equals 方法。