创建Stream
创建Stream方式:
- 创建Stream的方式
- 1、通过Collection
- 2、通过values
- 3、通过Arrays
- 4、通过file
- 5、通过iterate创建,无限的创建
- 6、通过Generate创建
- 7、自定义Supplier,创建Stream
使用范例
1、Collection创建,输出值顺序与之前放入值顺序一致。
范例:
    /**
     * 通过Collection创建Stream,数据顺序和放入顺序一致
     * @return
     */
    public static Stream<String> createStreamByCollection(){
        List<String> list = Arrays.asList(new String("Hello"), new String("world"), new String("please"));
        return list.stream();
    }2、values创建,输出值顺序与之前放入值顺序一致。
范例:
    /**
     * 通过values创建Stream,顺序一直
     * @return
     */
    public static Stream<String> createStreamByValues(){
        return Stream.of("Hello","world","please");
    }3、Arrays创建,输出值顺序与之前放入值顺序一致。
范例:
    /**
     * 3、通过Arrays创建,顺序一致
     * @return
     */
    public static Stream<String> createStreamByArrays(){
        return Arrays.stream(new String[]{"Hello","world","please"});
    }4、File创建
范例:
    /**
     * 4、通过file创建
     * @return
     */
    public static Stream<String> createStreamByFile(){
        Path path = Paths.get("D:\\software\\workspace\\IdeaProjects\\study\\study-java8\\src\\main\\java\\com\\example\\study\\java8\\streams\\CreateStream.java");
        try {
            Stream<String> stream = Files.lines(path);
            return stream;
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage());
        }
    }5、iterate无限的创建
范例:
    /**
     * 5、通过iterate创建,无限的创建
     * @return
     */
    public static Stream<Integer> createStreamByIterate(){
        return Stream.iterate(0, n->n+2).limit(10);    
    }
   6、Generate创建
范例:
    /**
     * 6、通过Generate创建
     * @return
     */
    public static Stream<Double> crateStreamByGenerate(){
        return Stream.generate(Math::random).limit(10);
    }7、自定义Supplier,创建Stream
范例:
    /**
     * 自定义Supplier,创建Stream
     * @return
     */
    public static Stream<Obj> createStreamByDefine(){
        return Stream.generate(new ObjSupplier()).limit(10);
    }
    static class ObjSupplier implements Supplier<Obj> {
        int index =0;
        Random random = new Random(System.currentTimeMillis());
        @Override
        public Obj get() {
            index = random.nextInt(100);
            return new Obj(index, "Name->"+index);
        }
    }
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @ToString
    static class Obj{
        private Integer id;
        private String name;
    }熟悉创建Stream后,就是使用其api进行开发了。
 
        
       
     
       
           
           
           
          
评论 (0)