package com.lambda;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* <b>
* Streams API是Java 8的一大新特点, 流式风格,使用Streams API比起循环和if语句组合起来更加直观,代码简洁
* </b>
* @author shixiang.chen
* @since 2018
*/
public class StreamsApiTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("mr.Chen");
list.add("mr.Chen");
list.add("mr.Chen");
list.add("ftValue");
list.add("peekValue");
list.add("mr.Li");
//
List<String> result = list.stream().distinct() // // 去重复,三个重复的mr.Chen会只剩唯一的一个
.filter(e-> e.equals("ftValue")) // 筛选出符合条件的
.collect(Collectors.toList()); // 返回计算结束后的集合
result.forEach(e-> System.out.println(e) );
result.forEach(System.out::println);
// allMatch 判断集合中对象是否全部匹配某条件
boolean allMatch = list.stream().allMatch(e-> e.equals("mr.Li"));
//判断集合中对象是否匹配某条件,只要任意一个对象满足就返回true
boolean anyMatch = list.stream().anyMatch(e-> e.equals("mr.Chen"));
// 与allMatch作用相反, 判断集合中对象没有一个匹配某条件
boolean noneMatch = list.stream().noneMatch(e-> e.equals("value"));
System.out.println("allMatch:" + allMatch);
System.out.println("anyMatch:" + anyMatch);
System.out.println("noneMatch:" + noneMatch);
}
}