List<User> userList = new ArrayList<>();
userList.add(new User("a", "1", "1", "a"));
userList.add(new User("b", "2", "2", "b"));
userList.add(new User("c", "3", "3", "c"));
userList.add(new User("d", "4", "4", "d"));
//所有值
userList.forEach(f -> System.out.println(f));
//name为a的值
userList.stream().filter(p -> "a".equals(p.getName())).forEach(System.out::println);
///name为a 并且为b 的值转为list
List<User> collect1 = userList.stream().filter(p -> "a".equals(p.getName())).filter(p -> "b".equals(p.getName())).collect(Collectors.toList());
//name为a 并且为b 的值
userList.stream().filter(p -> "a".equals(p.getName()) && "b".equals(p.getName())).forEach(a -> System.out.println(a));
//name为a 或者为b 的name值
userList.stream().filter(m -> "a".equals(m.getName()) || "b".equals(m.getName())).map(User::getName).forEach(System.out::println);
//将集合中的name转为set
Set<String> collectSet = userList.stream().map(User::getName).collect(Collectors.toSet());
//a c d
collectSet.forEach(System.out::println);
//将集合中的name为key,value为同一name的对象集合
Map<String, List<User>> collect = collectSet.stream().collect(Collectors.toMap(String::new, e -> userList.stream()
.filter(ele -> ele.getName().equals(e)).collect(Collectors.toList())));
//a-[a,a] b-[b]
collect.forEach((k, v) -> System.out.println(k + "--" + v));
Stream.iterate(10, x->x+2).limit(10).forEach(System.out::println);
Stream.generate(Math::random).limit(10).forEach(System.out::println);
Stream.generate(()->new Random().nextInt(10)).limit(10).forEach(System.out::println);
List<Integer> list = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
list.stream().filter(i->i % 2==0).distinct().forEach(System.out::println);
list.stream().limit(3).forEach(System.out::println);
System.out.println("---------------------------");
list.stream().skip(3).forEach(System.out::println);