持久化的 Java 集合类:Immutable Collections for Java
jopen
11年前
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));