filter方法的使用java
map方法的使用編程
flatMap方法的使用json
forEach方法的使用函數
map的做用很容易理解就是對rdd之中的元素進行逐一進行函數操做映射爲另一個rdd。spa
flatMap的操做是將函數應用於rdd之中的每個元素,將返回的迭代器的全部內容構成新的rdd。一般用來切分單詞,可用來單詞計數日誌
package com.imooc.zhangxiaoxi.stream; import com.alibaba.fastjson.JSONObject; import com.imooc.zhangxiaoxi.lambda.cart.CartService; import com.imooc.zhangxiaoxi.lambda.cart.Sku; import com.imooc.zhangxiaoxi.lambda.cart.SkuCategoryEnum; import org.junit.Before; import org.junit.Test; import java.util.Arrays; import java.util.List; /** * StreamOperator * 做用:演示各類流的操做 * @author 魏豆豆 * @date 2020/4/11 */ public class StreamOperator { private List<Sku> list; /** * 初始化購物車車 */ @Before public void init(){ list = CartService.getSkuList(); } /** * filter的方法使用 * * 過濾出只有書籍的商品並進行打印 */ @Test public void filterTest(){ list.stream() //filter方法:若是條件爲true則保留,不然過濾掉 .filter(sku -> sku.getSkuCategory().equals(SkuCategoryEnum.BOOKS)) //item(能夠是其餘變量):爲該流的每一個元素執行一個操做 .forEach(item->System.out.println(JSONObject.toJSONString(item,true))); } }
打印日誌:code
{ "skuCategory":"BOOKS", "skuId":2020003, "skuName":"人生的枷鎖", "skuPrice":30.0, "totalNum":1, "totalPrice":30.0 } { "skuCategory":"BOOKS", "skuId":2020004, "skuName":"老人與海", "skuPrice":20.0, "totalNum":1, "totalPrice":20.0 } { "skuCategory":"BOOKS", "skuId":2020005, "skuName":"劍指高效編程", "skuPrice":288.0, "totalNum":1, "totalPrice":288.0 } Process finished with exit code 0
package com.imooc.zhangxiaoxi.stream; import com.alibaba.fastjson.JSONObject; import com.imooc.zhangxiaoxi.lambda.cart.CartService; import com.imooc.zhangxiaoxi.lambda.cart.Sku; import com.imooc.zhangxiaoxi.lambda.cart.SkuCategoryEnum; import org.junit.Before; import org.junit.Test; import java.util.Arrays; import java.util.List; /** * StreamOperator * 做用:演示各類流的操做 * @author 魏豆豆 * @date 2020/4/11 */ public class StreamOperator { private List<Sku> list; /** * 初始化購物車車 */ @Before public void init(){ list = CartService.getSkuList(); } /** * map方法的使用 * * 找出購物車中全部商品的名稱並進行打印 */ @Test public void mapTest(){ list.stream() .map(sku -> sku.getSkuName()) .forEach(item->System.out.println(JSONObject.toJSONString(item,true))); } }
打印日誌:對象
"無人機"
"T-shirt"
"人生的枷鎖"
"老人與海"
"劍指高效編程"
"大頭皮鞋"
"槓鈴"
"ThinkPad"
Process finished with exit code 0
package com.imooc.zhangxiaoxi.stream; import com.alibaba.fastjson.JSONObject; import com.imooc.zhangxiaoxi.lambda.cart.CartService; import com.imooc.zhangxiaoxi.lambda.cart.Sku; import com.imooc.zhangxiaoxi.lambda.cart.SkuCategoryEnum; import org.junit.Before; import org.junit.Test; import java.util.Arrays; import java.util.List; /** * StreamOperator * 做用:演示各類流的操做 * @author 魏豆豆 * @date 2020/4/11 */ public class StreamOperator { private List<Sku> list; /** * 初始化購物車車 */ @Before public void init(){ list = CartService.getSkuList(); } /** * filter的方法使用 * * 過濾出只有書籍的商品並進行打印 */ @Test public void filterTest(){ list.stream() //filter方法:若是條件爲true則保留,不然過濾掉 .filter(sku -> sku.getSkuCategory().equals(SkuCategoryEnum.BOOKS)) //item(能夠是其餘變量):爲該流的每一個元素執行一個操做 .forEach(item->System.out.println(JSONObject.toJSONString(item,true))); } /** * map方法的使用 * * 找出購物車中全部商品的名稱並進行打印 */ @Test public void mapTest(){ list.stream() .map(sku -> sku.getSkuName()) .forEach(item->System.out.println(JSONObject.toJSONString(item,true))); } /** * flatMap方法的使用:將一個對象轉換成一個流 * * 找出購物車全部的商品名稱並進行打印 */ @Test public void flatMap(){ list.stream() //注意:flatMap是對源處理爲Stream流以後才能繼續操做 .flatMap(sku -> Arrays.stream(sku.getSkuName().split(""))) .forEach(item->System.out.println(JSONObject.toJSONString(item,true))); } }
打印日誌:blog
"無"
"人"
"機"
"T"
"-"
"s"
"h"
"i"
"r"
"t"
"人"
"生"
"的"
"枷"
"鎖"
"老"
"人"
"與"
"海"
"劍"
"指"
"高"
"效"
"編"
"程"
"大"
"頭"
"皮"
"鞋"
"槓"
"鈴"
"T"
"h"
"i"
"n"
"k"
"P"
"a"
"d"
Process finished with exit code 0