Dart 集合

17 Mar 2025 | 6 分钟阅读

Dart集合是同一类型的不同值的无序集合。 它具有许多与数组相同的功能,但它是无序的。 集合不允许存储重复值。 集合必须包含唯一值。

当我们要将相同类型的不同数据存储到单个变量中时,它起着至关重要的作用。 一旦我们声明了集合的类型,那么我们就只能拥有相同类型的值。 集合不能保持元素的顺序。

Dart初始化集合

Dart提供了两种方法来声明/初始化一个空集合。 可以使用{}花括号(前面是类型参数)来声明集合,或者使用花括号{}声明变量类型Set。 声明集合的语法如下。

语法 -

setname指的是集合变量的名称,type指的是集合的数据类型。

注意 - 应该记住,集合的语法与映射字面量非常相似。 如果我们忘记使用{}或分配给它的变量来定义类型注释,那么Dart编译器将创建Map对象而不是Set。

让我们看一下集合声明的以下示例 -

示例 -

输出

Initializing the Set
{James, Ricky, Devansh, Adam}

向集合中添加元素

Dart提供了两种方法add()addAll(),用于将元素插入到给定的集合中。 add()方法用于将单个项目添加到给定的集合中。 一次可以添加一个,而addAll()方法用于将多个元素添加到现有集合。 语法如下。

语法

考虑以下示例 -

示例 -

输出

Insert element into the Set
{Jonathan}
{Jonathan, James, Ricky, Devansh, Adam}

解释 -

我们声明了两个集合,分别是namesemp。 集合names由几个元素组成,而emp是一个空集合。 我们使用add()方法添加了单个元素“Jonathan”; 然后,我们调用了addAll()方法,并将另一个集合names作为参数传递。 它将多个值添加到了emp集合中。

访问集合元素

Dart提供了elementAt()方法,该方法用于通过传递其指定的索引位置来访问项目。 集合索引从0开始,一直到size - 1,其中size是集合中存在的元素数量。 如果我们输入的索引号大于其大小,则会引发错误。 语法如下。

语法

请看以下示例。

示例 -

输出

Access element from the Set
{James, Ricky, Devansh, Adam}
Adam

解释 -

在上面的示例中,我们设置了名称。 我们应用了elementAt()方法,并将索引位置3作为参数传递。 我们创建了一个变量x,它保存了评估后的值,然后我们打印了结果。

Dart在集合中查找元素

Dart提供了contains()方法,该方法用于在集合中查找元素。 它接受单个项目作为参数,并将结果以布尔类型返回。 如果给定的元素存在于集合中,则返回true,否则返回false。 语法如下。

语法

示例 -

输出

Example - Find Element in the given Set
Element Found

解释 -

在上面的程序中,为了在给定的集合中查找元素,我们调用了contains()方法,并将值“Ricky”作为参数传递。 我们使用条件语句来找出元素是否属于给定的集合。 给定的元素存在于集合中,则条件变为true,它打印if块语句。

注意 - 我们将在下一节中学习条件语句。

Dart删除集合元素

remove()方法用于从给定的集合中删除或移除元素。 它接受值作为参数; 该值是要在给定的集合中删除的。 语法如下。

语法 -

示例 -

输出

Example - Remove Element in the given Set
Before remove : {Peter, John, Ricky, Devansh, Finch}
After remove  :  {John, Ricky, Devansh, Finch}

解释 -

在上面的程序中,我们使用remove()方法从给定的集合中删除了“Peter”。 它返回了新修改的集合对象。

Dart遍历集合元素

在Dart中,可以使用以下forEach方法来迭代集合元素 -

示例 -

输出

Example - Remove Element in the given Set
Value:  Peter
Value:  John
Value:  Ricky
Value:  Devansh
Value:  Finch

Dart删除所有集合元素

我们可以使用clear()方法删除整个集合元素。 它删除或移除给定集合的所有元素,并返回一个空集合。 语法如下-

语法 -

示例 -

输出

Example - Remove All Element to the given Set
{Peter, John, Ricky, Devansh, Finch}
{}

将集合类型转换为列表

可以使用toList()方法将集合对象转换为列表对象。 语法如下。

注意 - 列表的类型必须与集合的类型相同。

语法 -

Dart集合操作

Dart集合提供了执行以下集合操作的功能。 这些操作如下所示。

联合 - 联合是用于组合两个给定集合a和b的值的集合。

交集 - 两个集合a和b的交集返回所有元素,这些元素在两个集合中都是公共的。

相减 - 两个集合a和b(a-b)的相减是集合b的元素不存在于集合a中。

让我们理解下面的例子。

示例 -

输出

Example - Set Operations
x union y is -
{10, 11, 12, 13, 14, 15, 18, 29, 43}
x intersection y is -
{12}
y difference z is -
{12, 18, 29, 43} 

Dart集合属性

Dart集合的几个属性如下所示。

性质解释
first它用于获取给定集合中的第一个元素。
isEmpty如果集合不包含任何元素,则返回true。
isNotEmpty如果集合包含至少一个元素,则返回true。
length它返回给定集合的长度。
last它用于获取给定集合中的最后一个元素。
hashcode它用于获取相应对象的哈希码。
单精度它用于检查集合是否仅包含一个元素。

下一个主题Dart Map