如何在Java中有效地合并两个列表?

Ily*_*man 4 java list random-access

Java中有多种合并列表的方法

  • 您可以致电ArrayList(Collection<? extends E> c)
  • 您可以使用流API,例如Stream.concat()Stream.of(listA, listB).forEach()
  • 和更多...

将两个随机访问列表合并为一个新的随机访问列表的最有效的内存和性能方法是什么?

小智 6

您可以使用Apache commons 库-

ListUtils.union(listA, listB);
Run Code Online (Sandbox Code Playgroud)

对于大型数据集,使用并行 Java8 流可能比仅使用流更好。

Stream.concat(list1.parallelStream(), list1.parallelStream())
      .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

  • `parallelStream` 使用多线程,这会破坏原始列表顺序,这一点应该注意。 (4认同)