通过Java中的流复制数组的每个元素

时间:2018-05-28 19:42:08

标签: java java-stream

我有一些数组

int[] a = {1,2,3,4,5};

如何通过流从重复元素中获取另一个数组。 我的意思是这样的

result = Stream.of(a).map(...)
// after that result = {1,1,2,2,3,3,4,4,5,5}

3 个答案:

答案 0 :(得分:4)

您需要flatMap而不是map。像,

int[] a = { 1, 2, 3, 4, 5 };
int[] result = IntStream.of(a).flatMap(x -> IntStream.of(x, x)).toArray();
System.out.println(Arrays.toString(result));

输出(根据要求)

[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

答案 1 :(得分:3)

这是一种方法:

int[] result = Arrays.stream(a)
                     .flatMap(e -> IntStream.of(e,e))
                     .toArray();

或:

int[] result = Arrays.stream(a)
                     .flatMap(e -> IntStream.generate(() -> e).limit(2))
                     .toArray();

答案 2 :(得分:1)

我希望这可以帮到你

int[] a = {1, 2, 3, 4, 5};
IntStream.concat(Arrays.stream(a), Arrays.stream(a)).sorted().forEach(element -> System.out.print(element));