推荐答案
在 Dart 中,Set
是一种无序且不包含重复元素的集合。以下是 Set
的常用方法:
add(E element): 向集合中添加一个元素。如果元素已存在,则不会添加。
Set<String> fruits = {'apple', 'banana'}; fruits.add('orange'); // {'apple', 'banana', 'orange'}
addAll(Iterable<e> elements): 向集合中添加多个元素。
Set<String> fruits = {'apple', 'banana'}; fruits.addAll({'orange', 'grape'}); // {'apple', 'banana', 'orange', 'grape'}
remove(Object? value): 从集合中移除指定的元素。
Set<String> fruits = {'apple', 'banana', 'orange'}; fruits.remove('banana'); // {'apple', 'orange'}
contains(Object? element): 检查集合中是否包含指定的元素。
Set<String> fruits = {'apple', 'banana'}; bool hasApple = fruits.contains('apple'); // true
clear(): 清空集合中的所有元素。
Set<String> fruits = {'apple', 'banana'}; fruits.clear(); // {}
length: 获取集合中元素的数量。
Set<String> fruits = {'apple', 'banana'}; int count = fruits.length; // 2
isEmpty: 检查集合是否为空。
Set<String> fruits = {}; bool isEmpty = fruits.isEmpty; // true
isNotEmpty: 检查集合是否不为空。
Set<String> fruits = {'apple'}; bool isNotEmpty = fruits.isNotEmpty; // true
toSet(): 返回集合的副本。
Set<String> fruits = {'apple', 'banana'}; Set<String> copy = fruits.toSet(); // {'apple', 'banana'}
union(Set<e> other): 返回当前集合与另一个集合的并集。
Set<String> fruits1 = {'apple', 'banana'}; Set<String> fruits2 = {'orange', 'banana'}; Set<String> union = fruits1.union(fruits2); // {'apple', 'banana', 'orange'}
intersection(Set<e> other): 返回当前集合与另一个集合的交集。
Set<String> fruits1 = {'apple', 'banana'}; Set<String> fruits2 = {'orange', 'banana'}; Set<String> intersection = fruits1.intersection(fruits2); // {'banana'}
difference(Set<e> other): 返回当前集合与另一个集合的差集。
Set<String> fruits1 = {'apple', 'banana'}; Set<String> fruits2 = {'orange', 'banana'}; Set<String> difference = fruits1.difference(fruits2); // {'apple'}
本题详细解读
Set
是 Dart 中用于存储唯一元素的数据结构。它继承自 Iterable
,因此可以使用 Iterable
的所有方法。Set
的主要特点是它不允许重复元素,并且元素的顺序是不确定的。
add(E element): 这个方法用于向集合中添加一个元素。如果元素已经存在于集合中,则不会重复添加。
addAll(Iterable<e> elements): 这个方法用于向集合中添加多个元素。它接受一个
Iterable
类型的参数,可以是List
、Set
或其他可迭代对象。remove(Object? value): 这个方法用于从集合中移除指定的元素。如果元素不存在于集合中,则不会发生任何变化。
contains(Object? element): 这个方法用于检查集合中是否包含指定的元素。它返回一个布尔值,表示元素是否存在。
clear(): 这个方法用于清空集合中的所有元素,使其变为空集合。
length: 这是一个属性,用于获取集合中元素的数量。
isEmpty: 这是一个属性,用于检查集合是否为空。如果集合中没有元素,则返回
true
。isNotEmpty: 这是一个属性,用于检查集合是否不为空。如果集合中至少有一个元素,则返回
true
。toSet(): 这个方法用于返回集合的副本。返回的副本是一个新的
Set
对象,包含与原始集合相同的元素。union(Set<e> other): 这个方法用于返回当前集合与另一个集合的并集。并集包含两个集合中的所有元素,但不重复。
intersection(Set<e> other): 这个方法用于返回当前集合与另一个集合的交集。交集包含两个集合中都存在的元素。
difference(Set<e> other): 这个方法用于返回当前集合与另一个集合的差集。差集包含当前集合中存在但另一个集合中不存在的元素。
通过这些方法,可以方便地对 Set
进行操作和管理,满足各种集合操作的需求。