Java8 Strram Filter方法
精华
小牛编辑
140浏览
2023-03-14
1 Java8 Strram Filter方法的介绍
Java8 Stream流式编程提供了一个方法filter() ,用于根据给定的predicate过滤流元素。假设您只希望获得列表中的偶数个元素,则可以借助filter方法轻松地做到这一点。
此方法以predicate为参数,并返回由结果元素组成的流。
2 Java8 Strram Filter方法的声明
Stream<T> filter(Predicate<? super T> predicate)
参数:predicate:predicate是功能接口。因此,您也可以在此处传递lambda表达式。
返回值:返回一个新的流。
3 Java8 Strram Filter方法的案例1
在以下示例中,我们将获取并迭代过滤后的数据。
/**
* 小牛知识库网: https://www.xnip.cn
*/
import java.util.*;
class Product{
int id;
String name;
float price;
public Product(int id, String name, float price) {
this.id = id;
this.name = name;
this.price = price;
}
}
public class JavaStreamExample {
public static void main(String[] args) {
List<Product> productsList = new ArrayList<Product>();
//Adding Products
productsList.add(new Product(1,"HP Laptop",25000f));
productsList.add(new Product(2,"Dell Laptop",30000f));
productsList.add(new Product(3,"Lenevo Laptop",28000f));
productsList.add(new Product(4,"Sony Laptop",28000f));
productsList.add(new Product(5,"Apple Laptop",90000f));
productsList.stream()
.filter(p ->p.price> 30000) // filtering price
.map(pm ->pm.price) // fetching price
.forEach(System.out::println); // iterating price
}
}
输出结果为:
90000.0
4 Java8 Strram Filter方法的案例2
在下面的示例中,我们将过滤后的数据作为列表来获取。
/**
* 小牛知识库网: https://www.xnip.cn
*/
import java.util.*;
import java.util.stream.Collectors;
class Product{
int id;
String name;
float price;
public Product(int id, String name, float price) {
this.id = id;
this.name = name;
this.price = price;
}
}
public class JavaStreamExample {
public static void main(String[] args) {
List<Product> productsList = new ArrayList<Product>();
//Adding Products
productsList.add(new Product(1,"HP Laptop",25000f));
productsList.add(new Product(2,"Dell Laptop",30000f));
productsList.add(new Product(3,"Lenevo Laptop",28000f));
productsList.add(new Product(4,"Sony Laptop",28000f));
productsList.add(new Product(5,"Apple Laptop",90000f));
List<Float> pricesList = productsList.stream()
.filter(p ->p.price> 30000) // filtering price
.map(pm ->pm.price) // fetching price
.collect(Collectors.toList());
System.out.println(pricesList);
}
}
输出结果为:
[90000.0]