2016-01-16 5 views
1

Поэтому у меня есть массив массив целых чисел, напримерScala: Array [Array [Int]] для массива [Int]

val n = Array(Array(1,2,3), Array(4,5,6), Array(7,8,9))

Но я хочу, чтобы преобразовать это, чтобы получить Array(1,2,3,4,5,6,7,8,9)

Это возможно и как? Спасибо!

ответ

8

Вы можете использовать метод сплющивания. Вызов n.flatten выведет Array(1,2,3,4,5,6,7,8,9).

+0

спасибо, я это знал, но совершенно забыл: D –

4

В дополнение к ответу гриба:

Если вы, кто производит такой 2D массив (в отличие от получения его от внешнего источника), вы можете использовать в .flatMap функции вместо двух вложенных друг в друга .map с ,

+0

Да, и мб это будет полезно, 'flatten' можно записать в виде 'flatMap (identity)'. – DaunnC

0

Идиоматический flatMap/flatten - это путь; но вы можете реализовать уплощение, например, с для понимания, как следует,

for (i <- n; j <- i) yield j