pub package

Map that you can use like Python's collections.defaultdict


Specify the default value of Map. This DefaultMap will never return null.


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>{}