持久化的 Java 集合类:Immutable Collections for Java

jopen 10年前

Immutable Collections for Java (Java不变集合类) 提供了不变的、持久化的 Java 集合类,对集合的元素添加和删除都是创建一个新的拷贝来进行。每份拷贝都共享几乎所有其原来的结构,为了最小化内存消耗,该库包含一个 singly-linked (cons/cddr style) list/stack, 一个整数的基于树的索引列表,一个 2-3 叉树的 map,一个哈希树 map,一个哈希和树的集合。所有集合提供了不变的游标作为标准的迭代器类。提供一个工具类来使用函数风格的算法访问数据。

       JImmutableList<Integer> list = JImmutables.list();          list = list.insert(10).insert(20).insert(30);          assertEquals(10, list.get(0));          assertEquals(20, list.get(1));          assertEquals(30, list.get(2));            JImmutableList<Integer> changed = list.deleteLast().insert(45);          assertEquals(10, list.get(0));          assertEquals(20, list.get(1));          assertEquals(30, list.get(2));          assertEquals(10, changed.get(0));          assertEquals(20, changed.get(1));          assertEquals(45, changed.get(2));

项目主页:http://www.open-open.com/lib/view/home/1385734614533