Удалить элемент из списка A, сравнить список A и массив строк B и удалить элементы из массива B, которые находятся в списке A, - PullRequest
0 голосов
/ 09 октября 2018

У меня есть список и массив строк

String[] B
List<String> A

Я хочу проверить, существует ли элемент в списке A, удалить его, а затем удалить элементы в массиве B, которые находятся в списке A,

Как это можно сделать в Java 8, используя потоки в одну строку?

Вот как удалить элемент из списка A.stream (). Filter (element ->! Element.equalsIgnoreCase(tobeIgnored) .collect (Collectors.toList ());

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

кажется, что это работает:

List A
Array B

B = Arrays.stream(B).filter(s -> !(A.stream().filter(el ->  
!el.equalsIgnoreCase("ok")).collect(Collectors.toList())). 
contains(s)).toArray(String[]::new);
0 голосов
/ 09 октября 2018

Прежде всего я бы создал HashSet из A и список из массива:

List<String> list = new ArrayList<>(Arrays.asList(B));
Set<String> set = new HashSet<>(A);

И затем создал бы массив только с теми элементами, которые вам нужны:

list.removeIf(set::contains);
list.toArray(new String[0]);
...