有谁知道在 Java 中是否可以在恒定时间内合并两个列表(或任何集合)?
http://www.cppreference.com/wiki/stl/list/splice
在 C 语言中使用链表很容易做到这一点......
谢谢,
最佳答案
据我所知,JDK 库中的类不支持这一点。
如果您构建自己的 List
实现是可能的 - 您可以自由地这样做,这是完全合法的。您可以使用 LinkedList
并识别要添加的集合也是 LinkedList
的特殊情况。
在记录您的类时,您需要指出添加的对象成为新对象的一部分,换句话说,很多通用性都丢失了。还有很多潜在的错误:在加入后更改任何一个原始列表(如果它们是可变的)将允许您创建一个有间隙或有两条尾部的列表。此外,大多数其他操作也不会从您的黑客类中受益。换句话说,乍一看这似乎是个疯狂的想法。
请注意,“合并”列表通常具有不同的含义;例如,当合并排序的列表时,人们会期望结果列表具有相同的顺序。您所说的加入两个链接列表实际上称为“拼接”更好。或者只是“加入”。
关于java - 在 Java 中以恒定时间合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2237308/