2013-07-01 6 views
2

Я использую LambdaJ и hamcrest в Java. Мне интересно, есть ли способ проверить, соответствует ли какой-либо элемент в одном массиве любому элементу другого массива?Hamcrest - любой элемент в arrayOne соответствует любому элементу arrayTwo

Я пробовал некоторые конфигурации, но я не могу понять, как это правильно.

как этот:

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 не соответствует тому, как я описал в вопросе. Это было то, что у меня был Список Лонг: с.

Я ссылался на hasItemInArray, который использует hasValue (сравнивая примитивные типы), а не hasItem (сравнивая объекты).

Так выше код работает с небольшой модификацией:

arrayOne, hasItem(isIn(arrayTwo)); 

Это acually несколько запутанным именование.

 Смежные вопросы

  • Нет связанных вопросов^_^