003 stream的創建
阿新 • • 發佈:2018-07-30
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的創建方法 @Testpublic 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的創建