摘要:今天來分享下在中創建的種方式,我就整理了種,其實還有更多,僅供大家參考學習下。我們直接使用源碼中的方式也是一樣的。轉發分享一下吧,我保證你日后總有機會用得著的。
之前棧長分享過 Java 8 一系列新特性的文章,其中重點介紹了 Stream.
獲取上面這份 Java 8~12 系列新特性干貨文章,請在微信搜索關注微信公眾號:Java技術棧,在公眾號后臺回復:java。
今天來分享下在 Java 8 中創建 Stream 的 10 種方式,我就整理了 10 種,其實還有更多,僅供大家參考學習下。
1、Stream.of 可變參數Streamstream1 = Stream.of("A", "B", "C"); System.out.println("stream1:" + stream1.collect(joining()));
程序輸出:
stream1:ABC2、Stream.of 數組
String[] values = new String[]{"A", "B", "C"}; Streamstream2 = Stream.of(values); System.out.println("stream2:" + stream2.collect(joining()));
程序輸出:
stream2:ABC
看 Stream.of 源碼,上面這兩種方式其實就是第三種方式的包裝版。
public staticStream of(T... values) { return Arrays.stream(values); }
我們直接使用源碼中的方式也是一樣的。
3、Arrays.streamString[] values = new String[]{"A", "B", "C"}; Streamstream3 = Arrays.stream(values); System.out.println("stream3:" + stream3.collect(joining()));
程序輸出:
stream3:ABC4、List
Listlist = Arrays.asList("A", "B", "C"); Stream stream4 = list.stream(); System.out.println("stream4:" + stream4.collect(joining()));
程序輸出:
stream4:ABC5、Set
Setset = new HashSet<>(Arrays.asList("A", "B", "C")); Stream stream5 = set.stream(); System.out.println("stream5:" + stream5.collect(joining()));
程序輸出:
stream5:ABC6、Map
Mapmap = new HashMap<>(); map.put("1", "A"); map.put("2", "B"); map.put("3", "C"); Stream stream6 = map.values().stream(); System.out.println("stream6:" + stream6.collect(joining()));
程序輸出:
stream6:ABC7、Stream.iterate
Streamstream7 = Stream.iterate("A", e -> String.valueOf((char) (e.charAt(0) + 1))).limit(3); System.out.println("stream7:" + stream7.collect(joining()));
程序輸出:
stream7:ABC8、Pattern
String value = "A B C"; Streamstream8 = Pattern.compile("W").splitAsStream(value); System.out.println("stream8:" + stream8.collect(joining()));
程序輸出:
stream8:ABC9、Files.lines
try { Streamstream9 = Files.lines(Paths.get("d:/data.txt")); System.out.println("stream9:" + stream9.collect(joining())); } catch (IOException e) { e.printStackTrace(); }
data.txt文件內容如下:
A B C
程序輸出:
stream9:ABC10、Stream.generate
Streamstream10 = Stream.generate(() -> "A").limit(3); System.out.println("stream10:" + stream10.collect(joining()));
程序輸出:
stream10:AAA
好了,這是棧長整理的 10 種創建 Stream 的方式,是不是很騷?如果你還知道其他的騷操作,可以留言告訴大家,讓大家記住你的頭像和ID。
轉發分享一下吧,我保證你日后總有機會用得著的。
大量 Java 8~12 的新特性文章我正在編寫中,棧長將陸續分享出來,微信搜索關注微信公眾號:Java技術棧,公眾號將第一時間推送,不要錯過。
本文原創首發于微信公眾號:Java技術棧(id:javastack),轉載請原樣保留本信息。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75419.html
摘要:比如,你可以建立一個,選出熱量超過卡路里的頭三道菜請注意也可以用在無序流上,比如源是一個。跳過元素流還支持方法,返回一個扔掉了前個元素的流。一般來說,應該使用來對這種流加以限制,以避免打印無窮多個值。 一、篩選和切片 1.用謂詞篩選 Streams接口支持filter方法。該操作會接受一個謂詞(一個返回boolean的函數)作為參數,并返回一個包括所有符合謂詞的元素的流。例如篩選出所有...
摘要:以前的編程任務多數是要求打印出序列前項的值,接口往往像這樣然后我們巴拉巴拉用一個循環搞定,而這次重點在于接口,需要實現一個斐波那契序列發生器。 本次我領到的任務如下: 任務: 你正在打造一個斐波那契世界,這是一個函數式的世界, 在這個世界中每個生命都是一個函數 root是這個世界的祖先 root.value; // 1 在這樣的世界,生孩子特別容易: const child = ...
摘要:第三個問題查找所有來自于劍橋的交易員,并按姓名排序。第六個問題打印生活在劍橋的交易員的所有交易額。第八個問題找到交易額最小的交易。 付諸實戰 在本節中,我們會將迄今學到的關于流的知識付諸實踐。我們來看一個不同的領域:執行交易的交易員。你的經理讓你為八個查詢找到答案。 找出2011年發生的所有交易,并按交易額排序(從低到高)。 交易員都在哪些不同的城市工作過? 查找所有來自于劍橋的交易...
摘要:示例字符串數值算術和文件原文譯者飛龍協議大量的教程和文章都涉及到中最重要的改變,例如表達式和函數式數據流。不僅僅是字符串,正則表達式模式串也能受益于數據流。 Java 8 API 示例:字符串、數值、算術和文件 原文:Java 8 API by Example: Strings, Numbers, Math and Files 譯者:飛龍 協議:CC BY-NC-SA 4.0 ...
摘要:當使用構造器時,無法改變所構造的對象類型,而方法將返回一個類對象,這是的子類。關鍵字的兩種用法一是引用本類成員變量,二是調用本類其他構造函數。不過兩者調用構造函數時,調用語句必須放在構造函數第一行。 閱讀原文:【讀】Java核心技術卷1 看到這本書時,我的內心是崩潰的,卷1就700多頁,但是這本書是很多前輩所推薦的,想必其中必有精華所在,硬著頭皮上吧。 showImg(https://...
閱讀 1004·2021-11-25 09:43
閱讀 1672·2019-08-30 13:59
閱讀 1589·2019-08-30 11:22
閱讀 2123·2019-08-30 11:06
閱讀 1299·2019-08-28 17:51
閱讀 3717·2019-08-26 12:12
閱讀 778·2019-08-26 12:11
閱讀 443·2019-08-26 12:10