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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

使用Stream API的类Java产量

發布時間:2023/12/3 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Stream API的类Java产量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

幾種編程語言(例如Ruby或Python等)提供yield命令。 在內存消耗方面,Yield提供了一種有效的方式,可以通過按需生成值來創建一系列值。 有關Python產量的更多信息。

讓我們考慮一個需要大量安全隨機整數的類或方法。 經典方法是創建此類整數的數組或集合。 與這種方法相比,良率提供了兩個主要優點:

  • 產量不需要事先知道序列的長度。
  • yield不需要將所有值存儲在內存中。

幸運的是,得益于Stream API ,yield功能可以在Java 8中使用:

import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Date; import java.util.function.Supplier; import java.util.stream.Stream;public class Yield {private static final Integer RANDOM_INTS = 10;public static void main(String[] args) {try (Stream randomInt = generateRandomIntStream()){Object[] randomInts = randomInt.limit(RANDOM_INTS).sorted().toArray();for (int i = 0; i < randomInts.length;i++)System.out.println(randomInts[i]);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}private static Stream generateRandomIntStream()throws NoSuchAlgorithmException{return Stream.generate(new Supplier() {final SecureRandom random = SecureRandom.getInstance("SHA1PRNG");boolean init = false;int numGenerated = 0;@Overridepublic Integer get() {if (!init){random.setSeed(new Date().getTime());init = true;System.out.println("Seeding");}final int nextInt = random.nextInt();System.out.println("Generated random "+ numGenerated+++ ": " + nextInt);return nextInt;}});}}

以下是執行提供的代碼段后的輸出:

Seeding Generated random 0: -896358073 Generated random 1: -1268521873 Generated random 2: 9627917 Generated random 3: -2106415441 Generated random 4: 935583477 Generated random 5: -1132421439 Generated random 6: -1324474601 Generated random 7: -1768257192 Generated random 8: -566921081 Generated random 9: 425501046 -2106415441 -1768257192 -1324474601 -1268521873 -1132421439 -896358073 -566921081 9627917 425501046 935583477

很容易看出, 供應商僅被實例化。 當然,我們可以利用所有Stream API功能,例如limit()sorted()。

randomInt.limit(RANDOM_INTS).sorted()。toArray()觸發RANDOM_INTS值的生成,然后將其排序并存儲為數組。

翻譯自: https://www.javacodegeeks.com/2014/08/java-yield-like-using-stream-api.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的使用Stream API的类Java产量的全部內容,希望文章能夠幫你解決所遇到的問題。

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