【发布时间】:2021-12-02 03:04:48
【问题描述】:
我有一个方法public static Iterator<Integer> intArrayTwoTimesIterator(int[] array) 接受一个数组。
我需要返回一个Iterator,它遍历给定的数组,但返回每个数组元素 2 次。
例如数组是new int[]{1, 2, 3},输出需要是"[1, 1, 2, 2, 3, 3]"。
如何使用迭代器将元素返回 2 次?
【问题讨论】:
我有一个方法public static Iterator<Integer> intArrayTwoTimesIterator(int[] array) 接受一个数组。
我需要返回一个Iterator,它遍历给定的数组,但返回每个数组元素 2 次。
例如数组是new int[]{1, 2, 3},输出需要是"[1, 1, 2, 2, 3, 3]"。
如何使用迭代器将元素返回 2 次?
【问题讨论】:
你可以试试这个实现:
public static Iterator<Integer> intArrayTwoTimesIterator(int[] array) {
return Arrays.stream(array).
flatMap(value -> IntStream.of(value, value)).
boxed().iterator();
}
【讨论】:
您应该迭代数组并将每个元素推送到每个元素之后并返回一个数组。
您可以这样做: (如何在特定索引处将项目插入到数组中)
var arr = [];
arr[0] = "1";
arr[1] = "2";
arr[2] = "3";
arr.join(); // Jani,Hege,Stale,Kai Jim,Borge
arr.splice(1, 0, "1");
arr.join();
或者只是将迭代中的每个元素推入数组并对其进行排序。
【讨论】: