JDK8起,新增了对集合计算处理的Stream API,它的使用步骤和场合主要由以下几个部分构成
1、stream流 的生成
2、stream流的计算
3、stream流的终止
以list集合为例进行讲解,先创建一个Employee实例对象用于演示,生成 name、age、salary、status属性的getter \setter 方法,status属性为枚举。
//1.生成list对象 List emps = Arrays.asList( new Employee(101, "张三", 18, 9999.99, Status.FREE), new Employee(102, "李四", 59, 6666.66, Status.BUSY), new Employee(103, "王五", 28, 3333.33, Status.VOCATION), new Employee(104, "赵六", 8, 7777.77, Status.BUSY), new Employee(105, "田七", 38, 5555.55, Status.BUSY) );
//2. 获取流并进行中间计算操作/* 映射 map——接收 Lambda , 将元素转换成其他形式或提取信息。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。flatMap——接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流 */@Testpublic void test1(){
Stream str = emps.stream() .map((e) -> e.getName()); System.out.println("-------------------------------------------"); List strList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee"); Stream stream = strList.stream() .map(String::toUpperCase); stream.forEach(System.out::println); Stream> stream2 = strList.stream() .map(TestStreamAPI1::filterCharacter); stream2.forEach((sm) ->