Pcollections. Persistent Java Collections Library

Занятная штука – НЕИЗМЕНЯЕМЫЕ аналоги Java коллекций. Зачем оно надо ? Для некоторых алгоритмов и многопоточных программ самое то. Один из примеров

import pcollections.*;
public class Example {
  public static void main(String... args) {
    PSet set = HashTreePSet.empty();
    set = set.plus("something");
    System.out.println(set);
    System.out.println(set.plus("something else"));
    System.out.println(set);
  }
}

Результат:
[something]
[something else, something]
[something]

http://code.google.com/p/pcollections/