title: Immutable collections in Java
body: <p>I have recently started looking at GUAVA's collections, namely <code>ImmutableList</code> and that seems rather cumbersome (with the builder instance etc.) Is there a library that would mimic a more "natural" way of how the collections should behave (scala's <a href="http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.List" rel="nofollow">http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.List</a> is one example). I would like something that allows addition/removal etc. but preserving immutability and, perhaps for the purpose of performance, reuses parts of old list.</p>