向hashmap添加元素时Scala类型不匹配
我在变量向hashmap添加元素时Scala类型不匹配,scala,Scala,我在变量a中用Scala表示图形的邻接列表 val a = new HashMap[Int, Vector[Tuple2[Int, Int]]] withDefaultValue Vector.empty for(i <- 1 to N) { val Array(x, y, r) = readLine.split(" ").map(_.toInt) a(x) += new Tup
a
中用Scala表示图形的邻接列表
val a = new HashMap[Int, Vector[Tuple2[Int, Int]]] withDefaultValue Vector.empty
for(i <- 1 to N) {
val Array(x, y, r) = readLine.split(" ").map(_.toInt)
a(x) += new Tuple2(y, r)
a(y) += new Tuple2(x, r)
}
我不明白它为什么要
字符串。我没有在任何地方指定字符串。+=
是用于连接到字符串的运算符
您可能需要执行以下操作:a.update(x,a.getOrElse(x,Vector()):+(x,r))
+=
是连接到字符串的运算符
您可能需要执行以下操作:a.update(x,a.getOrElse(x,Vector()):+(x,r))
此外,您正在用Scala编写Java代码。它汇编了,但相当于滥用语言:/
下次考虑做类似的事情:
val a = Range(1, N)
.map { _ => readline.split(" ").map (_.toInt) }
.flatMap { case Array(x, y, r) =>
Seq(x -> (y, r), y -> (x, r))
}
.groupBy(_._1)
.mapValues { _.map ( _._2) }
另外,您正在用Scala编写Java代码。它汇编了,但相当于滥用语言:/
下次考虑做类似的事情:
val a = Range(1, N)
.map { _ => readline.split(" ").map (_.toInt) }
.flatMap { case Array(x, y, r) =>
Seq(x -> (y, r), y -> (x, r))
}
.groupBy(_._1)
.mapValues { _.map ( _._2) }