Map
that you can use like Python's collections.defaultdict
Features
Specify the default value of Map
. This DefaultMap
will never return null
.
Usage
Simply instantiate DefaultMap
.
final DefaultMap<int, String> m = DefaultMap<int, String>();
m[1] = 'one';
print(m[1]); // 'one'
print(m[2]); // ''
You may need to give an argument, ifAbsent
, which is a function to defines the default value. In this case, the argument is () => HashMap<int, int>()
, meaning an empty HashMap<int, int>
is returned when keys don't exist.
final DefaultMap<int, HashMap<int, int>> m =
DefaultMap<int, HashMap<int, int>>(() => HashMap<int, int>());
m[1][1] = 1;
print(m[1]); // {1: 1}
print(m[2]); // {}
Additional information
If your V
in DefaultMap<K, V>
is included below, you don't need to specify the default value (the argument, ifAbsent
).
V |
Default value |
---|---|
int |
0 |
double |
0.0 |
String |
'' |
bool |
false |
List<int> |
<int>[] |
List<double> |
<double>[] |
List<String> |
<String>[] |
List<bool> |
<bool>[] |
Map<int, int> |
<int, int>{} |
Map<int, double> |
<int, double>{} |
Map<int, String> |
<int, String>{} |
Map<int, bool> |
<int, bool>{} |
Map<String, int> |
<String, int>{} |
Map<String, double> |
<String, double>{} |
Map<String, String> |
<String, String>{} |
Map<String, bool> |
<String, bool>{} |