Java中是否存在不可变的单链表实现?

时间:2015-09-29 15:09:02

标签: java linked-list immutability

来自功能背景,我正在寻找Java中等效的不可变单链表。

不可变的单链表让我可以自由地定义许多具有共同尾部的列表。例如,如果我有list = [1,2,3],那么我将创建两个新列表:

first = [10 | list]
second = [15 | list]

我没有复制清单。在内部它看起来更像是这样:

first -> 10 -> 1 -> 2 -> 3 -> null
second -> 15  /|\

我查看了番石榴名单,但我找不到有关实施细节的信息。据我所知,这是一个双重链接列表,因此无法进行有效的前置操作(请纠正我,如果我错了)。

2 个答案:

答案 0 :(得分:2)

你试过Functional Java吗?还有similar question,您可以使用该算法并从双重列表中单独列出。

答案 1 :(得分:0)

尝试Vavr是开源的,以便您可以查看内部实现。

相关问题