- Stream只能操作一次
- Stream方法返回的是新的流
- Stream不调用终结方法(count , foreach),中间的操作不会执行
简单Demo体会Stream API
定义两个集合,然后再集合中存储多个用户名称,然后完成如下操作: 1. 第一个队伍只保留姓名长度为3的成员 2. 第一个队伍筛选后只要前3个人 3. 第二个队伍只要姓张的成员 4. 第二个队伍筛选后不要前两个人 5. 将两个队伍合并为一个队伍 6. 根据姓名创建Person对象 7. 打印整个队伍的Person信息
package java8.stream;
import java8.myentity.Person;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class Demo01 {
public static void main(String[] args) {
List list1 = Arrays.asList("武松", "李逵", "宋江", "林冲", "老子", "庄子", "孙子", "孔子");
List list2 = Arrays.asList("罗翔", "张无忌", "张三丰", "赵丽颖", "杨颖", "张学良", "张三");
// 1. 第一个队伍只保留姓名长度为3的成员
// 2. 第一个队伍筛选后只要前3个人
Stream stream1 = list1.stream().filter(s -> s.length() == 3).limit(3);
// 3. 第二个队伍只要姓张的成员
// 4. 第二个队伍筛选后不要前两个人
Stream stream2 = list2.stream().filter(s -> s.startsWith("张")).skip(2);
// 5. 将两个队伍合并为一个队伍
// 6. 根据姓名创建Person对象
// 7. 打印整个队伍的Person信息
Stream.concat(stream1, stream2).
map(Person::new)
.forEach(System.out::println);
}
}
参考波波老师课件



