前言
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、網(wǎng)站制作、崗巴網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、崗巴網(wǎng)絡(luò)營銷、崗巴企業(yè)策劃、崗巴品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供崗巴建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.comJava8中提供了Stream對集合操作作出了極大的簡化,學(xué)習(xí)了Stream之后,我們以后不用使用for循環(huán)就能對集合作出很好的操作。
本文將給大家詳細介紹關(guān)于java8 Stream使用的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細的介紹吧
1. 原理
Stream 不是集合元素,它不是數(shù)據(jù)結(jié)構(gòu)并不保存數(shù)據(jù),它是有關(guān)算法和計算的,它更像一個高級版本的 Iterator。
原始版本的 Iterator,用戶只能顯式地一個一個遍歷元素并對其執(zhí)行某些操作;
高級版本的 Stream,用戶只要給出需要對其包含的元素執(zhí)行什么操作,比如:
Stream 就如同一個迭代器(Iterator),單向,不可往復(fù),數(shù)據(jù)只能遍歷一次,遍歷過一次后即用盡了,就好比流水從面前流過,一去不復(fù)返。
而和迭代器又不同的是,Stream 可以并行化操作
Stream 的另外一大特點是,數(shù)據(jù)源本身可以是無限的
2.使用步驟
獲取一個數(shù)據(jù)源(source)→ 數(shù)據(jù)轉(zhuǎn)換→執(zhí)行操作獲取想要的結(jié)果
每次轉(zhuǎn)換原有 Stream 對象不改變,返回一個新的 Stream對象(可以有多次轉(zhuǎn)換),這就允許對其操作可以像鏈條一樣排列,變成一個管道,如下圖所示。
3. Stream的構(gòu)造
public void test4() { Stream stream = Stream.of("a", "b", "c", 23); stream.forEach(key -> System.out.println(key)); String[] array = new String[]{"abc", "efg"}; stream = Stream.of(array); stream = Arrays.stream(array); stream.forEach(key -> System.out.println(key)); Listlist = Arrays.asList(array); stream = list.stream(); //IntStream、LongStream、DoubleStream IntStream stream2 = IntStream.of(1, 2, 3, 3); DoubleStream stream4 = DoubleStream.of(1, 2, 3, 3.4); stream2.forEach(key -> System.out.println(key)); stream4.forEach(key -> System.out.println(key)); }