我需要将多个整数数组连接起来,并在此过程中保留元素的顺序。
例如:
例如:
final Integer[] arr1= { 1, 3, 2 };
final Integer[] arr2= { 4, 6, 5 };
final Integer[] arr3= { 7, 9, 8, 10 };
final Integer[] arr4= { 11, 13, 12, 15, 14 };
因此,当我尝试使用Java 8流将这4个数组合并为一个数组时;
Stream.of(arr1, arr2, arr3, arr4).flatMap(Stream::of).toArray(Integer[]::new);
这完美地呈现了结果;
[1, 3, 2, 4, 6, 5, 7, 9, 8, 10, 11, 13, 12, 15, 14]
然而,我阅读了一些文章和评论,人们声称flatMap
方法并不总是保留原始流的顺序。这是正确的吗?除此之外,我还能做些什么来保持原始顺序呢?
concatMap
? - vahdetfinal
并不重要,因此如果您将其删除,读者阅读这个问题时需要付出更少的努力。而且,您可能也不需要四个数组来说明您的问题。我建议保持示例尽可能简洁(即使这个示例已经相当简洁了,所以很好)。 - Christian Neverdalunordered
操作,否则它是有序的。 - EugeneflatMap
没有保留顺序,所以我使用了concatMap
。@vahdet 感谢你的评论。 - malhobayyeb