来自功能背景,我正在寻找Java中等效的不可变单链表。
不可变的单链表让我可以自由地定义许多具有共同尾部的列表。例如,如果我有list = [1,2,3]
,那么我将创建两个新列表:
first = [10 | list]
second = [15 | list]
我没有复制清单。在内部它看起来更像是这样:
first -> 10 -> 1 -> 2 -> 3 -> null
second -> 15 /|\
我查看了番石榴名单,但我找不到有关实施细节的信息。据我所知,这是一个双重链接列表,因此无法进行有效的前置操作(请纠正我,如果我错了)。
答案 0 :(得分:2)
你试过Functional Java吗?还有similar question,您可以使用该算法并从双重列表中单独列出。
答案 1 :(得分:0)
尝试Vavr是开源的,以便您可以查看内部实现。