个性化阅读
专注于IT技术分析

Java流过滤器

Java流提供了一个方法filter(), 用于根据给定的谓词过滤流元素。假设你只想获得列表中的偶数个元素, 则可以借助filter方法轻松地做到这一点。

此方法以谓词为参数, 并返回由结果元素组成的流。


签名

Stream filter()方法的签名如下:

Stream<T> filter(Predicate<? super T> predicate)

参数

谓词:将谓词引用作为参数。谓词是功能接口。因此, 你也可以在此处传递lambda表达式。

返回

它返回一个新的流。


Java Stream filter()示例

在以下示例中, 我们将获取并迭代过滤后的数据。

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

Java Stream filter()示例2

在下面的示例中, 我们将过滤后的数据作为列表来获取。

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]
赞(0)
未经允许不得转载:srcmini » Java流过滤器

评论 抢沙发

评论前必须登录!