在 Dart 编程中设置
集合是对象的集合,其中每个对象只能出现一次。这意味着元素类型中的所有对象要么在集合中,要么不在集合中。
集合是一种重要的数据结构,在我们需要每个对象恰好出现一次的情况下非常有用。
在dart中有多种方法可以创建Set,但是使用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
{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