电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Java Stream流知識總結

瀏覽:88日期: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
相關文章:
主站蜘蛛池模板: 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 5nd音乐网|最新流行歌曲|MP3歌曲免费下载|好听的歌|音乐下载 免费听mp3音乐 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 上海道勤塑化有限公司| 氢氧化钙设备_厂家-淄博工贸有限公司 | 免费网站网址收录网_海企优网站推荐平台| 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 海水晶,海水素,海水晶价格-潍坊滨海经济开发区强隆海水晶厂 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 标准品网_标准品信息网_【中检计量】| 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 食安观察网| 环氧树脂地坪漆_济宁市新天地漆业有限公司 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 品牌广告服务平台,好排名,好流量,好生意。 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 |