【发布时间】:2019-01-06 06:52:44
【问题描述】:
我打算使用 Java11。学习一个新方法Predicate.not,我发现我目前的代码只能找到猫族为:
List<String> animals = List.of("cat", "leopard", "dog", "lion", "horse");
Predicate<String> cats = a -> !a.equals("dog") && !a.equals("horse");
Set<String> filterCat = animals.stream().filter(cats).collect(Collectors.toSet());
System.out.println(filterCat);
输出是:
豹、猫、狮子
现在我正在尝试使用新方法,但输出不正确。我该如何纠正?我做错了什么?
我后来的代码:
Predicate<String> updatedCatFilter = Predicate.not(a -> a.equals("dog") && a.equals("horse"));
Set<String> catFamily = animals.stream().filter(updatedCatFilter).collect(Collectors.toSet());
System.out.println(filterCat);
但这会输出我所有的列表。
马、豹、猫、狗、狮子
【问题讨论】:
标签: java predicate java-11 functional-interface