1. 程式人生 > >Java 8實戰(Java 8 in action)學習總結(三)

Java 8實戰(Java 8 in action)學習總結(三)

  1. Streams API可以表達複雜的資料處理查詢。常用的流操作如下表: 在這裡插入圖片描述
  2. 你可以使用filter、distinct、skip和limit對流做篩選和切片。
  3. 你可以使用map和flatMap提取或轉換流中的元素。
  4. 你可以使用findFirst和findAny方法查詢流中的元素。你可以allMatch、noneMatch和anyMatch方法讓流匹配給定的謂詞。
  5. 這些方法都利用了短路:找到結果就立即停止運算;沒必要處理整個流。
  6. 你可以利用reduce(規約)方法將流中所有的元素迭代合併成一個結果,例如求和或查詢最大元素等。
  7. filter和map操作是無狀態的,它們並不儲存任何狀態。reduce等操作要存狀態才能計算出一個值。sorted和distinct等操作也要儲存狀態,因為它們需要把流中的所有元素快取起來才能返回一個新的流。這種操作稱為有狀態操作
  8. 流有三種基本的原始型別特化:IntStream、DoubleStream和LongStream。它們的操作也有相應的特化。
  9. 流不僅可以從集合建立,也可以從值、陣列、檔案以及iterate與generate等特定方法建立。
  10. 無限流是沒有固定大小的流。