私は以下のScalaのコードを持っており、値の部品 を取得したいが、問題があるが、ループのためにネストされている:2つのforループを使用せずにscalaから値の部分を取得する方法は?あなたは以下を参照として
var result: Set[String]()
val mapValues: Map[String, Set[String]] = ...
// this returns Iterable[Set[String]] instead of Set[String],
// so I had to use two for loops as you see below.
val values: Iterable[Set[String]] = mapValues.values
for(value <- values) { // problem: this is two for loops which is not good
for(v <- value) {
result.add(v)
}
}
Javaの用語では、これは私が欲しいものです:
Set<String> result = ...
Map<String, Set<String>> mapValues = ...
Set<String> values = mapValues.values();
for(String value: values) {
result.add(value);
}
mapValuesの値を取得したい場合はを結果セット変数に入れます。
しかし、上記の2つのforループを使用せずにScalaで行う方法はわかりません。
'val result = mapValues.values.fold(Set())(_ ++ _) ' – jwvh