2014年7月19日現在
githubの履歴を追った限り
一部、不変でないデータ構造もあるが、これから挙げるものはすべて不変
Equal, Hash, Show があるので、大半のclassで、java.lang.Objectの、equals, hashcode, toString がoverrideされてない!!!
ところで・・・
つまりどういうことか?
これだけは今日覚えて帰ってもらいたい
(良し悪しは別にして)Java8のStreamは
関数型言語の一般的なコレクションとは別で色々独特過ぎる!
Java8のStreamのデメリット、もしくは単に好きでない特徴
(もちろん、それぞれの特徴は設計上のトレードオフなので、完全にだめなわけではない)
不変なコレクションでない、副作用のあるメソッドがある
↓
どのメソッドが副作用あるのか把握しないといけない
遅延評価
遅延評価
なぜJava8のStreamは遅延評価か?