国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java Stream流知識總結

瀏覽:62日期:2022-08-31 08:21:45

說明

在Java 8中,得益于Lambda所帶來的函數式編程,引入了一個全新的Stream概念,用于解決已有集合類庫既有的弊端

遍歷

傳統集合在于使用循環遍歷

Java 8的Lambda讓我們可以更加專注于做什么(What),而不是怎么做(How),這點此前已經結合內部類進行 了對比說明。現在,我們仔細體會一下上例代碼,可以發現:

for循環的語法就是“怎么做” for循環的循環體才是“做什么”

傳統集合遍歷

import java.util.ArrayList;import java.util.List;/** * @author tanglei * @date 2020/6/10 10:21 下午 */public class NormalFilter { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add('張無忌'); list.add('周芷若'); list.add('趙敏'); list.add('張強'); list.add('張三豐'); List<String> zhangList = new ArrayList<>(); for(String name : list){ if(name.startsWith('張')){ zhangList.add(name); } } List<String> shortList = new ArrayList<>(); for(String name : zhangList){ if(name.length() == 3){ shortList.add(name); } } for (String name : shortList){ System.out.println(name); } }}

Stream的優雅

import java.util.ArrayList;import java.util.List;/** * @author tanglei * @date 2020/6/10 10:28 下午 */public class StreamFilter { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add('張無忌'); list.add('周芷若'); list.add('趙敏'); list.add('張強'); list.add('張三豐'); list.stream() .filter(s -> s.startsWith('張')) .filter(s -> s.length() == 3) .forEach(System.out::println); }}

Stream的優雅使用stream可以十分簡單明了的體現代碼的邏輯

“Stream流”其實是一個集合元素的函數模型,它并不是集合,也不是數據結構,其本身并不存儲任何 元素(或其地址值

獲取流

所有的 Collection 集合都可以通過 stream 默認方法獲取流; Stream 接口的靜態方法 of 可以獲取數組對應的流。

根據Collection獲取流

public static void main(String[] args) {List<String> list = new ArrayList<>();Stream<String> stream1 = list.stream();Set<String> set = new HashSet<>();Stream<String> stream2 = set.stream();Vector<String> vector = new Vector<>();}

根據Map獲取流

public static void main(String[] args) {Map<String, String> map = new HashMap<>();Stream<String> keyStream = map.keySet().stream();Stream<String> valueStream = map.values().stream(); Stream<Map.Entry<String, String>> entryStream = map.entrySet().stream();}

根據數組獲取流

public static void main(String[] args) {String[] array = { '張無忌', '張翠山', '張三豐', '張一元' };Stream<String> stream = Stream.of(array); }

常用方法

逐一處理:forEach會將每一個流元素交給該函數進行處理

public static void main(String[] args) {Stream<String> stream = Stream.of('張無忌', '張三豐', '周芷若');stream.forEach(name?> System.out.println(name)); }

過濾:filter可以通過 filter 方法將一個流轉換成另一個子集流

public static void main(String[] args) {Stream<String> original = Stream.of('張無忌', '張三豐', '周芷若');Stream<String> result = original.filter(s ?> s.startsWith('張')); }

映射:map如果需要將流中的元素映射到另一個流中

public static void main(String[] args) {Stream<String> original = Stream.of('10', '12', '18');Stream<Integer> result = original.map(str?>Integer.parseInt(str)); }

統計個數:count數一數其中的元素個數

public static void main(String[] args) {Stream<String> original = Stream.of('張無忌', '張三豐', '周芷若'); Stream<String> result = original.filter(s ?> s.startsWith('張')); System.out.println(result.count()); // 2}

取用前幾個:limit可以對流進行截取,只取用前n個

public static void main(String[] args) {Stream<String> original = Stream.of('張無忌', '張三豐', '周芷若'); Stream<String> result = original.limit(2); System.out.println(result.count()); // 2}

跳過前幾個:skip如果希望跳過前幾個元素

public static void main(String[] args) {Stream<String> original = Stream.of('張無忌', '張三豐', '周芷若'); Stream<String> result = original.skip(2); System.out.println(result.count()); // 1}

組合:concat如果有兩個流,希望合并成為一個流

public static void main(String[] args) {Stream<String> streamA = Stream.of('張無忌'); Stream<String> streamB = Stream.of('張翠山'); Stream<String> result = Stream.concat(streamA, streamB);}

感謝

黑馬程序員

以及勤勞的自己

以上就是Java Stream流知識總結的詳細內容,更多關于Java Stream流的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 国产成人一区二区三区高清 | 国产亚洲一级精品久久 | 99久久国产综合精品五月天 | 亚洲精品99久久久久中文字幕 | 在线国产日韩 | 亚洲精品影院久久久久久 | 亚洲理论欧美理论在线观看 | 波多野结衣一区在线 | 国产成人毛片视频不卡在线 | 99久久精品国产免费 | 毛片美国基地 | 日韩 欧美 中文 亚洲 高清 在线 | 国产日韩欧美三级 | 成年女人毛片免费观看中文w | 国产午夜亚洲精品第一区 | 91精品国| 日韩三级在线观看 | 爱爱毛片 | 国产a一级毛片含羞草传媒 国产a自拍 | 黄a 大片a v 永久免费 | 日韩在线欧美在线 | 91理论片午午伦夜理片久久 | 欧美日韩中文国产一区二区三区 | 制服丝袜怡红院 | 国内国产真实露脸对白 | 99久久免费午夜国产精品 | 欧美一级高清片 | 波多野结衣视频在线 | 欧美亚洲黄色 | 成人影院在线免费观看 | 亚洲成a人一区二区三区 | 久草在线视频资源 | 中文在线com | 成年毛片 | 国产微拍精品福利视频 | 99re热精品这里精品 | 九九精彩视频在线观看视频 | 亚洲国产系列久久精品99人人 | 久久精品国产亚洲7777 | 成人三级在线播放线观看 | 成年女人在线视频 |