import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.stream.Stream;
//流式编程得中间操作
public class StreamDemo3 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("郭奉孝");
strings.add("郭嘉");
strings.add("孙权");
strings.add("刘备");
strings.add("曹操");
//输出前三个元素
strings.stream().limit(3).forEach(System.out::println);
System.out.println("-----------------");
//跳过前三个再输出
strings.stream().skip(3).forEach(System.out::println);
//跳过前两个再输出两个
System.out.println("-----------------");
strings.stream().skip(2).limit(2).forEach(System.out::println);
//前四个数据组成一个流
Stream<String> limit = strings.stream().limit(4);
//跳过2个数据组成一个流
Stream<String> skip = strings.stream().skip(2);
//合并两个流并输出
// System.out.println("-----------------");
// Stream.concat(limit,skip).forEach(System.out::println);
//去重操作
System.out.println("-----------------");
Stream.concat(limit,skip).distinct().forEach(System.out::println);
ArrayList<String> list = new ArrayList<>();
list.add("guofengxiao");
list.add("guojia");
list.add("sunquan");
list.add("liubei");
list.add("caocao");
//按照字母排序
System.out.println("-----------------");
list.stream().sorted().forEach(System.out::println);
//按照字符长度排序
System.out.println("-----------------");
list.stream().sorted((s1,s2) -> s1.length()-s2.length()).forEach(System.out::println);
ArrayList<String> integers = new ArrayList<>();
integers.add("10");
integers.add("20");
integers.add("30");
integers.add("40");
integers.add("50");
//将字符转为数字输出
System.out.println("-----------------");
integers.stream().map(Integer::parseInt).forEach(System.out::println);
//转为int流求和
System.out.println("-----------------");
int result = integers.stream().mapToInt(Integer::parseInt).sum();
System.out.println(result);
}
}