Dart 编程中的映射

Maps 是非常重要的数据结构,因为它们允许我们将键映射到某些特定的值,然后我们可以从键中获取值。

在 Dart 中,我们可以使用不同类型的映射。这些主要是 -

  • 哈希表

  • 链接哈希映射

  • 树状图

在大多数情况下,我们使用 LinkedHashMap,因为它很容易创建和使用。

让我们在 dart 中创建一个简单的映射。

示例

考虑下面显示的例子 -

void main() {
   var colors = new Map();
   print(colors);
}

在上面的示例中,我们创建了一个空映射,然后将其打印出来。需要注意的是,当我们使用Map()构造函数创建映射时,它会创建一个 LinkedHashMap。

LinkedHashMap 与 HashMap 的不同之处在于它保留了我们将键插入其中的顺序。

输出结果

{}

现在,让我们尝试将一些键值对添加到我们的颜色映射中。

示例

考虑下面显示的例子 -

void main() {
   var colors = new Map();
   colors['blue'] = true;
   colors['red'] = false;
   colors['green'] = false;
   colors['yellow'] = true;
   print(colors);
}

键位于方括号内,我们要分配给这些键的值位于表达式的右侧。

输出结果

{blue: true, red: false, green: false, yellow: true}

应该注意的是,当我们打印映射时,我们插入键的顺序是保持不变的。此外,映射中的所有键都必须具有相同的数据类型并不重要。

示例

考虑下面显示的例子 -

void main() {
   var colors = new Map();
   colors['blue'] = true;
   colors['red'] = false;
   colors['green'] = false;
   colors['yellow'] = true;
   colors[1] = "omg"; // 带有字符串值的 int 键
   print(colors);
}

在 Dart 中,拥有动态键和值是完全没问题的。

输出结果

{blue: true, red: false, green: false, yellow: true, 1: omg}

现在让我们看看我们可以在映射上使用的一些属性。

示例

考虑下面显示的例子 -

void main() {
   var colors = new Map();
   colors['blue'] = true;
   colors['red'] = false;
   colors['green'] = false;
   colors['yellow'] = true;
   colors[1] = "omg";
   print(colors['blue']); // 访问特定密钥
   print(colors.length); // 检查映射中存在的键值对的数量
   print(colors.isEmpty); // 检查映射是否为空
   print(colors.keys); // 打印映射中存在的所有键
   print(colors);
}
输出结果
true
5
false
(blue, red, green, yellow, 1)
{blue: true, red: false, green: false, yellow: true, 1: omg}

我们还可以使用 for-in 循环遍历映射中存在的键和值。

示例

考虑下面显示的例子 -

void main() {
   var colors = new Map();
   colors['blue'] = true;
   colors['red'] = false;
   colors['green'] = false;
   colors['yellow'] = true;
   colors[1] = "omg";void main() {
      var colors = new Map();
      colors['blue'] = true;
      colors['red'] = false;
      colors['green'] = false;
      colors['yellow'] = true;
      colors[1] = "omg";
      print(" ---- Keys ---- ");
      for(var key in colors.keys){
         print(key);
      }
      print(" ---- Values ---- ");
      for(var value in colors.values){
         print(value);
      }
   }
   print(" ---- Keys ---- ");
   for(var key in colors.keys){
      print(key);
   }
   print(" ---- Values ---- ");
   for(var value in colors.values){
      print(value);
   }
}
输出结果
---- Keys ----
blue
red
green
yellow
1
---- Values ----
true
false
false
true
omg