Google Code Prettify

2020年10月4日 星期日

Java Stream: Creation

繼上一篇「Java Stream: getting started」後,這裡整理 stream 生成的幾種方式。

  1. of
  2. Stream week = Stream.of("日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日");
    log.debug("count = " + week.count());
    
    如上,使用 of 產生 stream,上面經過 count 方法後,會 output 出 7。
  3. Arrays
  4. Arrays.stream(new String[] { "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" }, 2, 4)
    	.forEach(w -> log.debug(w));
    
    這個方法,可以從陣列中截取一段產生 stream,上面會輸出 "火曜日"、"水曜日"。
  5. generate
  6. Stream.generate(Math::random).forEach(s -> log.info("number = " + s));
    
    使用 generate 會生成無限長度的 stream,如上,會一直輸出亂數。所以,通常會配合 limit 使用。
    Stream.iterate(BigInteger.ZERO, n -> n.compareTo(BigInteger.valueOf(10)) < 0, n -> n.add(BigInteger.ONE)).forEach(i -> log.debug("integer = " + i));
    Stream.iterate(BigInteger.ZERO, n -> n.add(BigInteger.ONE)).limit(10).forEach(i -> log.debug("integer = " + i));
    
    上面兩種方法可以得到相同結果,都是輸出 0 ~ 9。

沒有留言:

張貼留言