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它是开源的,因此您可以看到内部实现。
来自功能背景,我正在寻找 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它是开源的,因此您可以看到内部实现。