stream流过滤每个数据是否为空
时间: 2023-11-26 10:01:43 浏览: 117
可以使用Java 8中的Stream API中的filter()方法来过滤每个数据是否为空。具体实现如下:
```
List<String> list = Arrays.asList("apple", "", "banana", "", "orange");
List<String> filteredList = list.stream().filter(str -> !str.isEmpty()).collect(Collectors.toList());
```
在上面的代码中,首先创建了一个包含字符串的列表。然后使用stream()方法将列表转换成一个流,接着使用filter()方法过滤出其中不为空的字符串,最终使用collect()方法将过滤后的结果收集到一个新的列表中。
需要注意的是,在这个例子中使用的是字符串的isEmpty()方法来判断字符串是否为空。如果需要过滤其他类型的数据,可以使用不同的判断条件来实现。
相关问题
java使用Stream流对list中的数据进行过滤,把不为空的数据过滤掉
可以使用filter方法来实现对list中数据的过滤,示例代码如下:
List<String> list = Arrays.asList("apple", null, "banana", "", "orange", null);
List<String> filteredList = list.stream().filter(str -> str != null && !str.isEmpty()).collect(Collectors.toList());
在上面的代码中,我们首先创建了一个包含了null和空字符串的list,然后使用stream()方法创建一个Stream流,通过filter方法对每个元素进行筛选,只保留非空字符串,最后通过collect(Collectors.toList())来将筛选后的元素收集为一个新的List。
javastream流过滤
Java中的流过滤是一种对流中的元素进行处理或筛选的操作。常见的流过滤操作有过滤、映射、排序等。
要对流进行过滤,可以使用filter()方法。该方法接受一个Predicate接口的实现作为参数,用于判断流中的每个元素是否满足特定条件。满足条件的元素将被保留下来,不满足条件的元素将被过滤掉。
以下是一个示例代码,演示了如何使用filter()方法对一个整数流进行过滤,只保留大于10的元素:
```java
List<Integer> numbers = Arrays.asList(5, 12, 8, 15, 3, 20);
List<Integer> filteredNumbers = numbers.stream()
.filter(num -> num > 10)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [12, 15, 20]
```
在上述代码中,首先将整数集合转换成流,然后调用filter()方法并传入一个Lambda表达式作为参数。Lambda表达式定义了一个条件,即num是否大于10。最后使用collect()方法将过滤后的元素收集到一个新的列表中。
除了过滤外,Java流还提供了其他常用的操作,如映射(map)、排序(sorted)等。你可以根据具体的需求选择适合的流操作来对数据进行处理。
阅读全文