java lambda filter not contains

Java中可以使用Lambda表达式和Stream API来实现集合的过滤操作。如果要使用Lambda表达式对集合进行“不包含”筛选,可以使用filter()方法结合negate()方法来实现。

例如,如果要从一个字符串列表中筛选出不包含指定字符串的所有元素,可以使用以下代码:

List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "kiwi");
String str = "a";
List<String> result = list.stream()
                          .filter(s -> !s.contains(str))
                          .collect(Collectors.toList());

在上面的代码中,filter()方法的参数是一个Lambda表达式,用于指定筛选条件。!s.contains(str)表示只选取不包含指定字符串的元素,即取反后包含指定字符串的元素被过滤掉。negate()方法用于将Lambda表达式的返回值取反。

最后,使用collect()方法将过滤后的元素收集到一个新的列表中。这里使用的是Collectors.toList()方法,可以将Stream流中的元素转换成一个List对象。

需要注意的是,Lambda表达式中的s变量表示集合中的每个元素,因此Lambda表达式的具体实现应该根据实际需求进行修改。

希望这个回答对您有帮助!

  •