我有一个列表和一个String数组
String[] B
List<String> A
我要检查列表A中是否存在某个元素,将其删除, 然后删除列表B中数组B中的元素,
如何在Java 8中使用流在一行中完成?
这是如何从列表中删除元素 A.stream()。filter(element->!element.equalsIgnoreCase(tobeIgnored).collect(Collectors.toList());
答案 0 :(得分:1)
首先,我将从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]);
答案 1 :(得分:1)
看来这可行:
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);