我有一些数组
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}
我有一些数组
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}
您需要使用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]
以下是一种实现方式:
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();
int[] a = {1, 2, 3, 4, 5};
IntStream.concat(Arrays.stream(a), Arrays.stream(a)).sorted().forEach(element -> System.out.print(element));
Object[] b = IntStream.range(0, a.length) .mapToObj(x -> new int[][] { { a[x][0], a[x][1], a[x][2] }, { a[x][1], a[x][0], a[x][2] } }) .toArray();
这将生成您所需的数组。 - Elliott Frisch