Как в scala создать mutable.Map, чтобы при обращении создавалось значение по умолчанию?
Нужен аналог вот такого:
from collections import defaultdict
d = defaultdict(list)
d[0].extend((1, 2, 3))
d[2].extend((4, 5, 6))
for k, v in d.items():
print str(k) + ': ' + str(v)
#include <map>
#include <vector>
#include <iostream>
int main() {
std::map<int, std::vector<int>> m;
m[0] = {1, 2, 3};
m[2] = {4, 5, 6};
for (auto& v : m) {
std::cout << v.first << ": ";
for (auto i : v.second)
std::cout << i << ", ";
std::cout << std::endl;
}
}
Попытка применить метод withDefault ничего не дает:
import scala.collection._
object TestMap extends App {
type Values = mutable.ArrayBuffer[Int]
val m = new mutable.HashMap[Int, Values].withDefault(i => new Values())
m(0).append(1, 2, 3)
m(2).append(4, 5, 6)
println(m)
}
Как это делается в scala?