日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对象和索引流

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对象和索引流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我本來要寫一篇關于如何將流與每個元素的索引混合的文章,但是Baeldung上的人們已經很好地涵蓋了這個主題 ! 鑒于我是他們編輯團隊的一員,我為他們/我們感到自豪。

有趣的是,特別是Streams中的Java函數式編程如何使我們脫離了一些常見的模式。 例:

List<Foo> foos = new ArrayList<>(); for (int i=0; i < bars.size(); i++) {foos.add(new Foo(i, bars.get(i)); }

上面的代碼從索引創建一個新的Foo ,從源列表創建一個bar 。

當Stream.collect是一個更大的信號,我們要從迭代中提取數據時,我們不喜歡在for循環中間使用add 。 同樣,當我們可以在流聲明中更明確地表示有效的Stream.map時,我們不希望將其隱藏在循環中。 我們都知道以上內容應讀為:

List<Foo> foos = bars.stream().map( ... something ...).collect(toList());

尷尬的挑戰是某些事情不容易完成。

如何選擇做什么

總體而言,圍繞流操作編寫復雜的功能清單是一種隱藏流要向我們展示的東西的方法,即,數據如何從一個地方轉到另一個地方。

所以這是一些想法:

  • 也許只有一個for循環–可能會更容易
  • 如果您發現操作主體中的主要參與者是索引,那么請進行一系列索引,并在最后一分鐘將對象與List.get混合,假設您的列表已被有效索引
  • 如果主要玩家是一個對象,則可以存儲一個計數器( AtomicInteger是一個不錯的選擇)并在最后一刻增加它,注意排序和并行流
  • 如果代碼變得復雜,請嘗試通過提取函數來將流邏輯與業務邏輯分離
  • 也許將其委托給一個圖書館-Baeldung的文章展示了ProtonPack和其他可能更好的東西,它們已經過測試和記錄。

無論您做什么,都不要從原則上使自己變得困難。

翻譯自: https://www.javacodegeeks.com/2019/08/object-index-streams.html

總結

以上是生活随笔為你收集整理的对象和索引流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。