国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

總結一下關于在Java8中使用stream流踩過的一些坑

瀏覽:2日期:2022-08-09 18:45:45
Java8的stream流

第一個坑:

Collectors.toAsList()其實是new了一個list,在向里面賦值。

總結一下關于在Java8中使用stream流踩過的一些坑

注意這里Collectors.toList()的寫法,這里其實是底層new ArraryList().篩選的數據放到一個新的list。雖然標1處和標2處是同一個變量,但是內存地址是不一樣啊。下面的邏輯時把hldrPolVOList中的某些元素刪除。但是這個方法執行完后其實是沒有刪除里面元素的。原因就是這里的new ArraryList()更改了內存地址造成的。

測試:

總結一下關于在Java8中使用stream流踩過的一些坑

解決辦法:

總結一下關于在Java8中使用stream流踩過的一些坑

第二個坑:

list.stream().foreach(p->{return;});這里的return是結束的foreach而不是外部方法

總結一下關于在Java8中使用stream流踩過的一些坑

解決辦法:把stream改成for循環。

第三個坑:

并行流(parallelStream() )的foreach操作里,如果把一個ArrayList里的值copy到另外一ArrayList時,就有可能多或者少元素。原因并行流是多線程,而ArrayList是非線程安全的。

寫在最后

關于java8的stream是非常好用的,主要寫的代碼更加簡潔,不在寫大量代碼。但是也不是所有場景都適合用的,如果本來業務耗時比較長,然后有希望減少業務執行時間。在數據量不是很大的情況下,stream流是沒有優勢的,也就是說數據量小,且同意業務內多處使用stream處理數據,這時執行耗時比for循環更多,只有業務量達到百萬級別才體現出優勢。

到此這篇關于總結一下關于在Java8中使用stream流踩過的一些坑的文章就介紹到這了,更多相關Java8的stream流內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 富平县| 从化市| 崇义县| 孝感市| 临漳县| 林西县| 霍山县| 嘉定区| 察雅县| 武川县| 龙门县| 林州市| 黄山市| 北海市| 富宁县| 永州市| 潞西市| 泽库县| 石阡县| 阆中市| 禹城市| 新化县| 依兰县| 专栏| 丰台区| 廉江市| 漳州市| 玉门市| 桂东县| 夹江县| 新营市| 邻水| 彭阳县| 井陉县| 华坪县| 武胜县| 清流县| 绵竹市| 天门市| 铅山县| 泰州市|