2016-12-18 7 views
-1

私は等しい長さの3 ListBuffersを持っています。が見つかりましたString、必須(String、String、String、Int):tuples-scala

devicenamelist:ListBuffer [文字列]

datelist:ListBuffer [文字列]

wordcountssortedlistbuf [(文字列、INT)]

は、今私はフォーマット

のそれらを変換する必要があります

ListBuffer(String、String、String、Int)

は私が

[エラー]文字列

必須(文字列、列、列、INT)

を見つけましたが、次のようにそれは私にエラーを与えて、次の

var sortedrecords=scala.collection.mutable.ListBuffer[(String,String,String,Int)]() 

for(i <- 0 to devicenamelist.length) 
{ 

sortedrecords+=(devicenamelist(i),datelist(i),wordcountssortedlistbuf(i)._1,wordcountssortedlistbuf(i)._2) 

} 

を実行しようとしました

トップへの追加操作はどのように行われますか?私の意図が(String、String、String、Int)を作成することだったときに、ただ1つの文字列だけを取得すること。何か不足していますか?

あなたの+=行に括弧のセットが欠落しているおかげで

答えて

4

、しかし、それは誰かがScalaでは、このような何かを書く見るために私の目を傷つけることしないでください。

代わりにこのような何かを試してみてください:

タプル演算子のほかに
val sortedrecords = devicenamelist.zip(datelist).zip(wordcountssortedlistbuf) 
.map { case ((devicename, date), (word, count)) => 
    (devicename, date, word, count) 
} 
+0

- http://stackoverflow.com/a/13790933/409976 –

+0

@KevinMeredithそれはOPのコードで私の目を傷つけるタプル事業者ではありません可変バッファが命令的ループによって埋められているほどです。しかし、タプル演算子、過度の型指定、リストへのインデックス付きアクセスはあまり役に立ちません... – Dima

関連する問題