Scala中Tuple成员的重新排序

Scala中Tuple成员的重新排序

问题描述:

如何重新排列元组的成员?我有2元组的列表如下Scala中Tuple成员的重新排序

((115,vp,London,1001),(2,ZIP1,ZIP2)) 

我要重新排序的元组作为

((vp,London), (115,1001,2,ZIP1,ZIP2)) 
+2

文字vp,伦敦总是会出现在相同的位置?如果是的话,那很简单。你只需要编写一个地图功能! – sparkr

+0

是的,他们将处于相同的位置。我对scala很陌生,所以很难为此写一个函数。你能指出一个教程或一个例子吗? – BobCoder

因此,基于你的假设,即数组的元素出现在相同的位置,你可以请执行以下操作:

val tpl = Seq(((115,"vp","London",1001),(2,"ZIP1","ZIP2"))) 

tpl.map { 
    case (elem1, elem2) => ((elem1._2, elem1._3), (elem1._1, elem1._4, elem2._1, elem2._2, elem2._3)) 
} 

更好的方法是使用case类而不是像这样的元组!您可以将元组的元素放入案例类中,然后根据需要映射它!