list用stream的写法过滤空的数据
时间: 2024-05-28 22:09:23 浏览: 70
你可以用stream的filter方法来过滤空的数据,通过lambda表达式判断数据是否为空,然后使用collect方法将过滤后的数据收集到一个新的List中。
以下是示例代码:
List<String> list = Arrays.asList("a", "", "b", "", "c");
List<String> filteredList = list.stream().filter(str -> !str.isEmpty()).collect(Collectors.toList());
在这个例子中,我们首先定义一个包含空和非空字符串的List,然后使用stream的filter方法过滤空的数据。在lambda表达式中,我们使用!str.isEmpty()来判断数据是否为空。最后,我们使用collect方法将过滤后的数据收集到一个新的List中。
filteredList中包含了初始List中的所有非空字符串,而空字符串被过滤掉了。
相关问题
list.stream().filter写法
在Java 8中,可以使用Stream API来对集合进行操作。其中,filter()方法可以用于过滤集合中的元素。下面是一个示例代码,演示了如何使用filter()方法来过滤一个整数列表中的偶数元素:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出 [2, 4, 6, 8, 10]
```
在上面的代码中,我们首先创建了一个整数列表numbers,然后使用stream()方法将其转换为一个流。接着,我们使用filter()方法来过滤出其中的偶数元素,最后使用collect()方法将过滤后的结果收集到一个新的列表中。
stream列表写法
Stream是Java 8引入的一种强大的数据处理机制,它允许你在集合上执行一系列并行或非并行的操作,比如过滤、映射、排序、聚合等。当提到"stream列表写法",通常指的就是利用`List`对象的流式API(`.stream()`)来处理列表元素。以下是几个常见的stream写法例子:
1. **过滤**(filter):筛选出满足特定条件的元素,如:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
```
这会创建一个新的列表,只包含原列表中的偶数。
2. **映射**(map):将每个元素转换成新的形式,如:
```java
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> capitalizedNames = names.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
```
这会返回一个新的列表,所有名字都大写。
3. **查找并返回单个元素**(findFirst/last):
```java
String first = numbers.stream()
.findFirst()
.orElse(null);
```
找到第一个元素,如果没有就返回默认值。
4. **聚合**(reduce,sum,count等):对所有元素进行某种运算,如求和、计数:
```java
int sum = numbers.stream()
.mapToInt(Integer::intValue)
.sum();
```
计算列表中所有整数的和。
阅读全文
相关推荐
















