Перебор массива и проверка наличия элементов char в string через Stream
Подскажите, пожалуйста, c таким вопросом. Даны два массива:
static String[] arr = {"Hello", "World", "Bobby", "Sam"};
static char[] chars = {'h', 'o'};
Каким образом можно только лишь с помощью Stream найти совпадения символов из массива char со строкой из массива String и вывести в консоль?
Я сделал такую реализацию, но подозреваю есть более правильное решение:
for (Character c : chars) {
Arrays.stream(arr).filter(a -> a.contains(c.toString())).forEach(System.out::println);
}
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Как-то так
public static void main(String[] args) {
String[] arr = {"Hello", "World", "Bobby", "Sam"};
char[] chars = {'H', 'o'};
Arrays.stream(arr)
.filter(
a ->
new String(chars)
.chars()
.mapToObj(i -> (char) i)
.anyMatch(c -> a.contains(c.toString())))
.forEach(System.out::println); // Hello World Bobby
}