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

Is there an immutable singly linked list implementation in Java?

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

不可变的单向链表让我可以自由定义许多具有公共尾部的列表。例如,如果我有 list = [1,2,3] 然后我正在创建两个新列表:

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

我不是在复制列表。在内部看起来更像这样:

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

我查看了 Guava Lists,但找不到有关实现细节的信息。据我了解,它是一个双向链表,因此不可能进行有效的前置操作(如果我对此有误,请纠正我)。

你试过了吗Functional Java? Also there's similar question,你可以使用那个算法,从双列表中生成单列表。

尝试Vavr它是开源的,因此您可以看到内部实现。