package cn.com.learn;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamLearn {
public static void main(String[] args) {
test4();
}
private static void test4() {
List<String> list2 = new ArrayList<>();
list2.add("张老三");
list2.add("张小三");
list2.add("李四");
list2.add("赵五");
list2.add("张六");
list2.add("王八");
Stream<String> stream = list2.stream().filter(name -> name.startsWith("张"));
List<String> list = stream.collect(Collectors.toList());
Set<String> set = stream.collect(Collectors.toSet());
}
private static void test3() {
List<String> list = new ArrayList<>();
list.add("张老三");
list.add("张小三");
list.add("李四");
list.add("赵五");
list.add("张六");
list.add("王八");
long count = list.stream().count();
System.out.println("1. 统计流中的元素个数");
System.out.println(count);
System.out.println("2.获取姓张的元素 3.forEach遍历");
Stream<String> stream1 = Stream.of("张老三", "张小三", "李四", "赵五", "刘六", "王七");
stream1.filter(name->name.startsWith("张")).forEach(System.out::println);
Stream<String> stream2 = Stream.of("张老三", "张小三", "李四", "赵五", "刘六", "王七");
System.out.println("4.limit方法,截取前三个");
stream2.limit(3).forEach(System.out::println);
Stream<String> stream3 = Stream.of("11","22","33","44","55");
System.out.println("5.map方法 转成整型并打印");
stream3.map(Integer::valueOf).forEach(System.out::println);
Stream<String> stream4 = Stream.of("张老三", "张小三", "李四", "赵五", "刘六", "王七");
System.out.println("6.skip方法 跳过前几个元素");
stream4.skip(3).forEach(System.out::println);
Stream<String> stream5 = Stream.of("11","22","33","44","55");
Stream<String> stream6 = Stream.of("张颜宇", "张三", "李四", "赵五", "刘六", "王七");
Stream<String> stream7 = Stream.concat(stream5, stream6);
System.out.println("7.concat方法 合并两个流");
stream7.forEach(System.out::println);
}
public static void test2(){
Stream<Object> stream1 = new ArrayList<>().stream();
Stream<Object> stream2 = new HashSet<>().stream();
HashMap<Integer, String> map = new HashMap<>();
Stream<Integer> stream3 = map.keySet().stream();
Stream<Map.Entry<Integer, String>> stream = map.entrySet().stream();
String[] arr = {"张艳玉","张三","李四","王五"};
Stream<String> stream4 = Stream.of(arr);
}
public static void test1() {
List<String> list1 = new ArrayList<>();
list1.add("张老三");
list1.add("张小三");
list1.add("李四");
list1.add("赵五");
list1.add("张六");
list1.add("王八");
List<String> list = list1.stream()
.filter(name -> name.startsWith("张"))
.filter(name -> name.length() == 3)
.collect(Collectors.toList());
list.forEach(System.out::println);
}
}