Dart 编程中的集合


集合是对象的集合,其中每个对象只能出现一次。这意味着元素类型中的所有对象要么在集合中,要么不在集合中。

集合是一种重要的数据结构,在我们需要每个对象只出现一次的情况下非常有用。

Dart 中有多种创建集合的方式,但最常见的是使用 **Set()** 构造函数。

示例

请考虑以下示例:

 在线演示

void main() {
   var fruits = new Set();
   print(fruits);
}

在上面的示例中,我们创建了一个名为 fruits 的集合,目前为空,然后我们打印了该集合。

输出

{}

需要注意的是,当我们使用默认方式创建集合时,我们创建的是一个 LinkedHashSet,如果使用 == 运算符比较两个对象相等时,它们之间的区别是无法区分的。

我们可以使用 **add()** 方法将对象添加到 HashSet 中。

示例

请考虑以下示例:

 在线演示

void main() {
   var fruits = new Set();
   fruits.add("apple");
   fruits.add("mango");
   fruits.add("banana");
   print(fruits);
}

输出

{apple, mango, banana}

我们在上面的示例中添加了不同的水果,我们可以看到这些水果已成功添加到集合中。但是,如果我们尝试插入一个已存在于集合中的对象会发生什么情况呢?

示例

请考虑以下示例:

 在线演示

void main() {
   var fruits = new Set();
   fruits.add("apple");
   fruits.add("mango");
   fruits.add("banana");
   var t = fruits.add("apple");
   print(t);
   print(fruits);
   var z = fruits.add("litchi");
   print(z);
   print(fruits);
}

如果对象已存在于集合中,我们仍然尝试再次插入相同的对象,那么什么也不会发生,表达式将返回 false。

输出

false
{apple, mango, banana}
true
{apple, mango, banana, litchi}

还可以检查集合是否包含我们正在查找的特定对象。

示例

请考虑以下示例:

 在线演示

void main() {
   var fruits = new Set();
   fruits.add("apple");
   fruits.add("mango");
   fruits.add("banana");
   print("has apple? ${fruits.contains("apple")}");
   print("has kiwi? ${fruits.contains("kiwi")}");
}

输出

has apple? true
has kiwi? false

更新于: 2021年5月24日

353 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告