Returns 每个数组元素使用 Iterator 2 次

Returns each array element 2 times using Iterator

我有一个采用数组的方法 public static Iterator<Integer> intArrayTwoTimesIterator(int[] array)。 我需要 returns 一个 Iterator 迭代给定的数组,但 returns 每个数组元素 2 次。 例如数组是new int[]{1, 2, 3},在输出中需要是"[1, 1, 2, 2, 3, 3]"。 如何使用 Iterator return 元素 2 次?

您应该迭代数组并将每个元素推送到每个元素之后,return 一个数组。

您可以这样做: (如何在特定索引处将项目插入到数组中)

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();

或者只是将迭代中的每个元素推入数组并对其进行排序。

您可以试试这个实现:

public static Iterator<Integer> intArrayTwoTimesIterator(int[] array) {
  return Arrays.stream(array).
          flatMap(value -> IntStream.of(value, value)).
          boxed().iterator();
}