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
广告