我需要连接多个整数数组,并在我这样做时保留元素的顺序。
例如;
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
方法并不总是保留原始流的顺序。它是否正确?我还能做些什么来保留原始订单?
答案 0 :(得分:5)
flatmap()
方法是否保留了流的顺序?
是的,确实如此,map()
也是。
然而,我读了一些文章和评论,人们声称 flatMap方法并不总是保留原始的顺序 流。这是对的吗?
没有任何现实生活中的例子,很难说这一点。
资料来源:zeroturnaround.com