在 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