2013-07-01 26 views
2

我在Java中使用LambdaJ和hamcrest。我想知道是否有办法来检查一个数组中的任何项是否等于另一个数组中的任何项?Hamcrest - arrayOne中的任何项目与array中的任何项目匹配二

我已经尝试了一些配置,但我似乎无法做到正确。

像这样的:

arrayOne, hasItemInArray(isIn(arrayTwo)); 

...不行的,因为它会尝试每一个项目在arrayOne匹配。

+0

它是否在同一个索引?如果是的话,只是测试列表是'.equals()' – fge

+0

谢谢,但不是我真正想要的。这个匹配应该声明arrayOne包含至少一个等于arrayTwo中的项目的项目,而不管索引。 –

+0

然后只是'boolean found = false; for(final X item:arrayOne)if(arrayTwo.contains(item))found = true; assertTrue(实测值);'。 LambdaJ和这一切都很好,但良好的“老式”循环始终工作;) – fge

回答

3

我想我解决了它!

问题不在于Hamcrest与我在问题中描述的方式不符。这是我有一个长名单:s。

我指的是使用hasValue(比较原始类型)而不是hasItem(比较对象)的hasItemInArray

所以上面的代码,是用一个小的修改:

arrayOne, hasItem(isIn(arrayTwo)); 

这是一个acually有点混乱的命名约定。

相关问题