Stream流有中间操作与最终操作之分,见字闻意,执行中间操作后可继续执行其他操作,执行最终操作后该stream流即操作结束。
例:将集合中城市不是上海的城市名称打印出来
//todo stream流的使用
//todo filter:过滤操作;保留符合过滤条件的对象;这是一个中间操作;后面可以带最终操作
//todo forEach: 循环处理流中的数据;最终操作;执行该方法后后续不可执行其他方法
public static void main(String[] args) {
List<SalesOrder> list = createSalesOrder();
list.stream().filter(s->!s.getConsigneeCity().equals("上海"))
.forEach(s->
{
System.out.println(s.getConsigneeCity());
//System.out.println(s);
}
);
}
static List<SalesOrder> createSalesOrder(){
List<SalesOrder> list = new LinkedList<>();
SalesOrder salesOrder = new SalesOrder();
salesOrder.setConsigneeCity("上海");
list.add(salesOrder);
salesOrder = new SalesOrder();
salesOrder.setConsigneeCity("上海");
list.add(salesOrder);
salesOrder = new SalesOrder();
salesOrder.setConsigneeCity("北京");
list.add(salesOrder);
salesOrder = new SalesOrder();
salesOrder.setConsigneeCity("深圳");
list.add(salesOrder);
salesOrder = new SalesOrder();
salesOrder.setConsigneeCity("广州");
list.add(salesOrder);
salesOrder = new SalesOrder();
salesOrder.setConsigneeCity("杭州");
list.add(salesOrder);
return list;
}