1. 程式人生 > >003 stream的創建

003 stream的創建

arr lec slist msu split 因此 exce reac println

一 概述

  在我們使用Stream之前,我們首先就需要獲得一個Stream.

在標準的Stream之中,我們可以通過下面的Stream獲取Stream.

    //創建stream的方式
    
    //1.Collection接口
    /**
     *  default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }    
     */
    // 在jdk1.8之後,我們的Collection之中提供了Stream的創建方法
    
    @Test
    
public void test1() { List<String> list = Arrays.asList("string","trek"); list.stream().forEach(System.out :: println); } //2 //Stream接口之中擁有了of方法,可以創建一個含有指定數量元素的stream @Test public void test2() { Stream<String> stream = Stream.of(new String[]{"
string","trek"}); stream.forEach(System.out :: println); } /** * 3 .我們使用的數組其實也是一種Stream * ,因此在我們的數組工具類之中也提供了相應的方法創建Stream */ @Test public void test3() { String[] arr = new String[] {"aaaa","bbbb"}; Stream<String> stream = Arrays.stream(arr); stream.forEach(System.
out::println); } /** * 從文件之中獲取Stream * 這個其實我們可能會使用的比較多 * @throws IOException */ @Test public void test4() throws IOException { Path path = Paths.get("E:\\trek\\trek.js"); try(Stream<String> stream = Files.lines(path)){ stream.forEach(System.out::println); } } /** * 通過無限流獲取Stream * 現在展示的就是iterate()方法獲取無限流 */ @Test public void test5() { Stream<Integer> stream = Stream.iterate(1, n -> n+1).limit(20); stream.forEach(System.out::println); } /** * 通過generate()方法獲取無限流 */ @Test public void test6() { Stream<Double> stream = Stream.generate(Math::random).limit(20); stream.forEach(System.out::println); }

003 stream的創建