数组通过stream流过滤数据以后对数据进行切割,生成新的数组
时间: 2024-05-09 22:14:58 浏览: 5
可以使用 Java 8 中的 Stream API 来实现这个需求。具体的步骤如下:
1. 使用 `Arrays.stream()` 方法将数组转换成一个流。
2. 使用 `filter()` 方法对流中的元素进行过滤,只保留满足条件的元素。
3. 使用 `map()` 方法对流中的元素进行切割,生成新的元素。
4. 使用 `toArray()` 方法将流转换成一个数组。
下面是一个示例代码:
```java
int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] result = Arrays.stream(nums)
.filter(n -> n % 2 == 0)
.map(n -> n / 2)
.toArray();
System.out.println(Arrays.toString(result));
```
这段代码会将 `nums` 数组中的偶数元素筛选出来,并且将它们除以 2,最后生成一个新的数组。输出结果为 `[1, 2, 3, 4]`。
相关问题
使用流对数组中的元素过滤后重新存入新数组
可以使用流的 filter 方法对数组中的元素进行过滤,然后使用 toArray 方法将过滤后的元素存入新数组中。
例如,假设有一个整型数组 arr,想要过滤出其中的偶数,可以使用以下代码:
```java
int[] newArr = Arrays.stream(arr)
.filter(num -> num % 2 == 0)
.toArray();
```
其中,filter 方法接收一个 Lambda 表达式作为参数,该表达式用于过滤数组中的元素。在上述代码中,Lambda 表达式 `num -> num % 2 == 0` 表示过滤出数组中的偶数。
最后,使用 toArray 方法将过滤后的元素存入新数组 newArr 中。
stream数组过滤空字符串数据,转成集合
可以使用 Java 8 的 Stream API 来实现这个功能,代码如下:
```
String[] array = {"", "hello", "", "world", ""};
List<String> list = Arrays.stream(array)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
```
这段代码会将数组中的空字符串过滤掉,然后将剩下的字符串转成一个集合。