【Lambda、SteamAPI】謹慎使用流

onejay發表於2024-06-19

由於Java不支援基本型別的char流,因此在執行下面這樣的程式碼時,會出現問題

public static void main(String[] args) {
    "Hello World".chars().forEach(System.out::println);
    // 預期列印 Hello World
    // 實際列印 一串數字
}

chars()返回的流是int值不是char值。

因此我們應該避免使用流來處理char值。

推薦使用流的場景:

  • 對元素的序列進行統一轉換
  • 對元素的序列進行過濾
  • 使用單個操作將多個元素序列合併起來(相加、連線、計算最小值等)
  • 將元素序列累加到一個集合中,也許是根據某個共同的屬性來分組
  • 在一個元素序列中查詢滿足某個條件的元素

相關文章