java - 在 Java 中以恒定时间合并两个列表

标签 java merge

有谁知道在 Java 中是否可以在恒定时间内合并两个列表(或任何集合)?

http://www.cppreference.com/wiki/stl/list/splice

在 C 语言中使用链表很容易做到这一点......

谢谢,

最佳答案

据我所知,JDK 库中的类不支持这一点。

如果您构建自己的 List 实现是可能的 - 您可以自由地这样做,这是完全合法的。您可以使用 LinkedList 并识别要添加的集合也是 LinkedList 的特殊情况。

在记录您的类时,您需要指出添加的对象成为新对象的一部分,换句话说,很多通用性都丢失了。还有很多潜在的错误:在加入后更改任何一个原始列表(如果它们是可变的)将允许您创建一个有间隙或有两条尾部的列表。此外,大多数其他操作也不会从您的黑客类中受益。换句话说,乍一看这似乎是个疯狂的想法。

请注意,“合并”列表通常具有不同的含义;例如,当合并排序的列表时,人们会期望结果列表具有相同的顺序。您所说的加入两个链接列表实际上称为“拼接”更好。或者只是“加入”。

关于java - 在 Java 中以恒定时间合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2237308/

相关文章:

java - 在Java字符串中,如何仅用1行代码剪切字符串的一部分(可能使用正则表达式)?

java - 为什么我必须在此示例中为 Weld 添加私有(private)构造函数?

java - tld 文件中的堆栈

javascript - 合并数组并转换为 JSON 字符串

performance - SQL Server-合并大型表而不锁定数据

mysql - SQL如何将相似的记录合并到同一个表的单行中?

java - 将 Delphi 转换为 Java(我的代码是正确的吗?)

java - Spring MVC Model.containsAttribute 调用的方法是无访问器方法

mysql - MySQL 或 SQLite 是否支持 'INSERT OR UPDATE' 语句?

r - 使用合并函数从 xts 对象获取最大值