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