Stream流中间操作concat&distinct

package LambdaTest.LambdaTest06;

import java.util.ArrayList;
import java.util.stream.Stream;

/**
 * FileName: StreamDemo04
 * Author:   lps
 * Date:     2022/4/10 11:47
 * Sign:刘品水 Q:1944900433
 * static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b)
 * 创建一个懒洋洋的级联流的元素的所有元素的第一流通过第二个流的元素。   合并a和b两个流
 *
 * Stream<T> distinct()
 * 返回一个包含不同的元素流(根据 Object.equals(Object))这个流。
 */
public class StreamDemo04 {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("刘品水");
        array.add("刘品火");
        array.add("大张伟");
        array.add("刘一手");
        array.add("刘红");
        array.add("张伟");
        array.add("小张伟");
        //1取前四个数据组成一个流
        Stream<String> s1 = array.stream().limit(4);
        //2跳过两个数据组成一个流
        Stream<String> s2 = array.stream().skip(2);
        //合并1和2得到流 并把结果输出
        //Stream.concat(s1,s2).forEach(System.out::println);
        System.out.println("=========");
        //合并1和2并且不重复 输出
        Stream.concat(s1, s2).distinct().forEach(System.out::println);


    }
}

 

 

启动4的话记得要把3给注释掉

 

posted @ 2022-04-10 12:09  刘品水  阅读(84)  评论(0编辑  收藏  举报