С помощью постоянных коллекций я имею в виду такие же коллекции, как в clojure.
Например, у меня есть список с элементами (a, b, c). С обычным списком, если я добавлю d, мой исходный список будет иметь (a, b, c, d) как его элементы. С постоянным списком, когда я вызываю list.add(d), я возвращаю новый список, удерживая (a, b, c, d). Тем не менее, реализация пытается обмениваться элементами между списком, где это возможно, поэтому он намного эффективнее памяти, чем просто возврат копии исходного списка. Это также имеет преимущество неизменного (если я держу ссылку на исходный список, тогда он всегда будет возвращать исходные 3 элемента).
Все это объясняется намного лучше в другом месте (например, http://en.wikipedia.org/wiki/Persistent_data_structure).
В любом случае, мой вопрос... какая лучшая библиотека для предоставления этой функции для использования в java? Можно ли каким-либо образом использовать коллекции clojure (другие, которые напрямую используются clojure)?