java list stream filter
时间: 2023-05-03 09:05:52 浏览: 58
Java中的List是一种常用的数据结构,可以用来存储一系列数据元素,而Stream则是Java 8引入的一种新的处理数据的方式,可以让我们更方便、高效地处理List中的元素。
Stream中的filter操作可以用来过滤List中的元素,它接收一个Predicate函数式接口作为参数,该函数式接口用于判断List中的每个元素是否应该保留下来。如果该元素满足Predicate的条件,则该元素被保留下来,否则被过滤掉。
例如,我们有一个List<String>,其中包含了若干个字符串,我们希望只保留其中长度大于等于5的字符串,可以使用以下代码:
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
List<String> filteredList = list.stream().filter(s -> s.length() >= 5).collect(Collectors.toList());
在上述代码中,我们首先使用Arrays.asList()方法创建了一个包含多个字符串的List。然后,我们调用stream()方法,将该List转换成一个Stream。接着,我们使用filter()方法筛选出满足条件的字符串,并使用collect(Collectors.toList())方法将结果转换回List。
filter()方法返回的是一个新的Stream对象,该Stream中只包含了满足条件的元素,因此我们需要使用collect()方法将这些元素收集起来,转换成我们需要的数据类型。在上述代码中,我们通过调用Collectors.toList()方法将Stream转换成了List<String>类型的对象。
通过使用Java中的List、Stream和filter操作,我们可以更加方便地对List中的元素进行筛选和处理,从而使得代码更加简洁、高效、可维护。