Типизированная постоянная структура данных а-ля Clojure, выполненная на Java? - PullRequest
3 голосов
/ 30 апреля 2010

В частности, приветствуется неизменный List с операцией cons.

Ответы [ 5 ]

2 голосов
/ 05 января 2012

Существует также проект «Структуры данных Clojure, модифицированные для использования вне Clojure» по адресу: https://github.com/krukow/clj-ds

2 голосов
/ 13 мая 2010

Покопался немного дольше. Эта библиотека, вероятно, ближе всего: http://functionaljava.googlecode.com/svn/artifacts/2.22/javadoc/index.html. Я полагаю, что можно было бы использовать классы коллекций Clojure напрямую, но я не уверен, будет ли это так естественно (И мне не обязательно «транзакционное» поведение.)

1 голос
/ 13 мая 2010

Я написал несколько постоянных структур данных в Java.Мой "PersistentList" довольно близок к тому, что вы хотите.

http://code.google.com/p/mikeralib/source/browse/trunk/Mikera/src/mikera/persistent/PersistentList.java

0 голосов
/ 13 января 2012

Я сейчас использую Google Guava . Его пакет коллекций имеет неизменные варианты списков, карт, наборов и других. Код прост в использовании и отличается высоким качеством.

Однако из-за подробностей реализации эффективное использование списка может оказаться невозможным.

0 голосов
/ 01 мая 2010

В * 1001 опубликовано несколько решений *, содержащих список в Java . И неизменность может быть добавлена ​​с:

List l;
...
l = Collections.unmodifiableList(l);
...