2017-02-24 11 views
0

配列内のハッシュマップを更新しようとしていますが、そうすることはできません。HashMapをスカラーに追加する

def incrementCount(combiners: Array[Combiner], row: Row): Array[Combiner] = { 
    val tempMapTypes = new scala.collection.mutable.HashMap[String, (String, Array[String])] 
    for (i <- 0 until row.length) { 
     val array = getMyType(row(i), tempMapTypes) 
     for (elem <- tempMapTypes) { 
     combiners(i).mapTypes.update(elem._1,elem._2) <<<< this update doesnt work for me, always mapTypes is empty 
     } 
    } 
    } 

この場合の初期化の後、前述したようにこれは

case class Combiner(<other variables>, mapTypes: mutable.HashMap[String, (String, Array[String])]) 
     combiners 
     } 

コンバイナクラスであり、これは、それが別の方法で初期化されてしまったか、である...

val mapTypes = new scala.collection.mutable.HashMap[String, (String, Array[String])] 
combiners += new Combiner(....,mapTypes) 

どのようにmapTypesを追加するのですか?上記の更新コードは私にはうまくいかないようです。

class Combiner(..., mapTypes: mutable.HashMap[String, (String, Array[String])]) { 

    ... 

    def ++=(otherMapTypes: mutable.HashMap[String, (String, Array[String])]): Unit = 
    this.mapTypes ++= otherMapTypes 

} 

その後、次の操作を行うことができます:あなたはCombiner++=メソッドを定義することができますあなたの更新コードを使用したい場合は

答えて

0

for(i <- row.length) { 
    combiners(i) ++= tempMapTypes 
} 
関連する問題