使用stream输出集合中大于20的值
时间: 2024-03-21 10:44:40 浏览: 13
可以使用 `filter()` 方法来过滤集合中大于 20 的值,然后使用 `forEach()` 方法输出:
```java
List<Integer> list = Arrays.asList(10, 25, 15, 30, 20);
list.stream()
.filter(n -> n > 20)
.forEach(System.out::println);
```
上述代码首先创建了一个包含多个整数的 List,然后使用 `stream()` 方法将其转换为一个 Stream。接着使用 `filter()` 方法过滤出大于 20 的值,最后使用 `forEach()` 方法遍历输出。输出结果为:
```
25
30
```
注意,`forEach()` 方法是一个终止操作,会遍历整个 Stream 并输出结果。
相关问题
java中使用stream根据对象属性过滤对象集合
可以使用Java 8中引入的Stream API来根据对象属性过滤对象集合。下面是一个示例:
假设有一个Person类,其中有name和age两个属性:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
现在有一个List<Person>对象,我们要根据age属性过滤出年龄大于等于18的Person对象,可以使用如下的代码:
```
List<Person> people = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 17),
new Person("Charlie", 25),
new Person("David", 10)
);
List<Person> filteredPeople = people.stream()
.filter(p -> p.getAge() >= 18)
.collect(Collectors.toList());
System.out.println(filteredPeople);
```
输出结果为:
```
[Person{name='Alice', age=20}, Person{name='Charlie', age=25}]
```
在上面的代码中,我们使用了Stream的filter方法来过滤出年龄大于等于18的Person对象,然后使用collect方法将过滤后的结果收集到一个List中。
java String集合统计大于某个值有多少个
可以使用Java 8中的Stream API和Lambda表达式来实现这个要求。假设我们有一个String类型的List,名为list,统计其中大于某个值的元素个数可以使用如下代码:
```java
String target = "target"; // 某个值
long count = list.stream().filter(str -> str.compareTo(target) > 0).count();
System.out.println(count); // 输出大于某个值的元素个数
```
这段代码中,我们使用了stream()方法将List转换为Stream,然后使用filter()方法过滤出大于某个值的元素,最后使用count()方法统计个数。