stream数组过滤空字符串数据,转成集合
时间: 2023-05-21 19:00:49 浏览: 705
可以使用 Java 8 的 Stream API 来实现这个功能,代码如下:
```
String[] array = {"", "hello", "", "world", ""};
List<String> list = Arrays.stream(array)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
```
这段代码会将数组中的空字符串过滤掉,然后将剩下的字符串转成一个集合。
相关问题
stream filter in
在 Java 8 中,可以使用 Stream API 来实现对集合或数组的过滤操作。其中,filter 方法可以用来过滤集合或数组中的元素,类似于 SQL 中的 WHERE 子句。
使用 filter 方法时,可以传入一个谓词(Predicate)作为参数,该谓词表示对元素的过滤条件。例如,可以使用 filter 方法来筛选出一个整数数组中的偶数,示例代码如下:
```java
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] evenArr = Arrays.stream(arr)
.filter(n -> n % 2 == 0)
.toArray();
System.out.println(Arrays.toString(evenArr)); // 输出 [2, 4, 6, 8]
```
上述代码中,使用 `Arrays.stream` 方法将整数数组转换为 `IntStream` 对象,然后调用 `filter` 方法对元素进行过滤,传入的谓词是 `n -> n % 2 == 0`,表示筛选出能够被 2 整除的元素。最后,使用 `toArray` 方法将过滤后的元素转换为整数数组。
如果需要对集合或数组进行 IN 操作,可以使用 `Stream.of` 方法将多个元素转换为 Stream 对象,然后使用 `filter` 方法对元素进行过滤。例如,可以筛选出一个字符串数组中包含某些特定字符串的元素,示例代码如下:
```java
String[] arr = {"apple", "banana", "orange", "pear"};
String[] filteredArr = Arrays.stream(arr)
.filter(s -> Stream.of("apple", "pear").anyMatch(s::equals))
.toArray(String[]::new);
System.out.println(Arrays.toString(filteredArr)); // 输出 [apple, pear]
```
上述代码中,使用 `Arrays.stream` 方法将字符串数组转换为 `Stream` 对象,然后使用 `filter` 方法对元素进行过滤,传入的谓词是 `s -> Stream.of("apple", "pear").anyMatch(s::equals)`,表示筛选出包含 "apple" 或 "pear" 的元素。最后,使用 `toArray` 方法将过滤后的元素转换为字符串数组。
java stream怎么用
Java Stream是Java 8中的一个新特性,它提供了一种简洁、高效的方式来处理集合数据。下面是使用Java Stream的基本步骤:
1. 创建一个数据源,例如一个List或者一个数组。
2. 调用stream()方法将数据源转换成一个Stream对象。
3. 使用Stream对象进行一系列的中间操作,例如过滤、映射、排序等。
4. 使用终止操作(例如forEach、reduce、collect等)来获取结果。
下面是一个简单的Java Stream例子,假设我们有一个字符串列表,我们想要过滤出其中长度大于3的字符串,并将它们按照字母顺序排序后输出:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "grape");
list.stream()
.filter(s -> s.length() > 3)
.sorted()
.forEach(System.out::println);
```
这段代码首先将字符串列表转换成一个Stream对象,然后进行了三个中间操作:filter过滤、sorted排序和forEach输出。最终的结果是输出了长度大于3的字符串,并按照字母顺序排序后输出。
除了上面的例子,Java Stream还有很多其他的用法,例如将数据源转换成Map、统计元素个数、分组等等。需要根据实际需求进行选择。