用另一个数组scala填充数组的最佳方法

时间:2015-06-25 10:09:10

标签: arrays scala functional-programming

我有两个字符数组,看起来像这样:

  

a,b,c,d,e,f,g

     

k,e,y

我需要将第一个数组中的每个元素与第二个元素相关联,如下所示:

  

a-> k,

     

b-> e,

     

c-> y,

     

d-> k,

     

e-> e,

     

f-> y,

     

G-> k

但不知道如何在功能样式中实现它。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:7)

您可以使用连续的Array压缩第一个Stream

scala> val a1 = Array('a,'b,'c,'d,'e,'f,'g)
a1: Array[Symbol] = Array('a, 'b, 'c, 'd, 'e, 'f, 'g)

scala> val a2 = Array('k,'e,'y)
a2: Array[Symbol] = Array('k, 'e, 'y)

scala> val a3 = a1 zip (Stream.continually(a2).flatten)
a3: Array[(Symbol, Symbol)] = Array(('a,'k), ('b,'e), ('c,'y), ('d,'k),
                                    ('e,'e), ('f,'y), ('g,'k))