Scala Коллекции - Создание нового массива из существующего с использованием определенных правил - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать функцию в Scala, чтобы при вызове -

println(thisIsAFunction(Array(1,1,4,5,4,4)))

мне выдавался новый массив, всегда равный половине размера вход массива (вход массива всегда будет четным числом и больше 2), а в новом массиве он не будет содержать одно и то же число дважды. Так, например, в приведенном выше утверждении он возвращает массив, состоящий из чисел 1, 4 и 5. Я пытался подойти к этому несколькими способами, но не могу обойти его.

1 Ответ

2 голосов
/ 17 марта 2020
def thisIsAFunction(a: Array[Int]) =
  a.distinct.take(a.length/2)

Метод distinct удаляет любые дубликаты из Array, чтобы он не содержал одно и то же число дважды.

Методы take считывают первые n элементы результат, поэтому take(a.length/2) дает Array, что составляет половину длины оригинала.

...