java stram filiter
时间: 2024-01-17 13:04:22 浏览: 93
Java Stream提供了filter()方法,用于过滤Stream中的元素。filter()方法接收一个Predicate,用于对Stream中的元素进行筛选。
示例代码如下:
```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]。
在上述代码中,我们首先使用Arrays.asList()方法创建一个包含1至10的整数列表,然后使用stream()方法将该列表转换成一个Stream。接着使用filter()方法,传入一个Lambda表达式n -> n % 2 == 0,该表达式用于筛选列表中的偶数。最后使用collect()方法将筛选出的元素收集到一个列表中。
需要注意的是,filter()方法并不会修改原始Stream中的元素,而是通过创建一个新的Stream来返回筛选出来的元素。
相关问题
Java stram Long 转 Integer
要将Java流(Stream)中的Long类型转换为Integer类型,你可以使用map()方法来实现。以下是示例代码:
```java
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream<Long> longStream = Stream.of(1L, 2L, 3L, 4L, 5L);
Stream<Integer> intStream = longStream.map(Long::intValue);
intStream.forEach(System.out::println);
}
}
```
在上面的示例中,我们首先创建了一个Long类型的流(longStream),然后使用map()方法将每个元素转换为Integer类型。最后,我们使用forEach()方法打印转换后的Integer值。
请注意,这种类型转换可能会导致数据丢失,因为Long类型的值可能超出了Integer类型的范围。所以,在进行此类转换时,请确保数据不会丢失或造成其他问题。
java stram 打印map key 和value
在Java中,我们可以使用流来打印Map的键和值。要打印Map的键和值,我们需要使用Map类的entrySet()方法来获取Map中所有键值对的集合。然后,我们可以使用Stream API中的forEach()方法来遍历集合并打印出每个元素的键和值。
以下是一段示例代码,演示如何使用流打印Map中所有键和值:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个包含键值对的Map
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);
// 使用entrySet()方法获取Map中所有键值对的集合,然后使用流打印每个键值对的键和值
map.entrySet().stream().forEach(entry -> System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue()));
}
}
```
输出结果如下:
```
key: one, value: 1
key: two, value: 2
key: three, value: 3
```
以上就是使用流打印Map中所有键和值的方法。该方法简洁、高效,并且易于理解和实现。
阅读全文