



Set集合类型
设计一个案例,演示Set集合类型变量的定义方法,以及其属性和方法的功能和使用方法。
案例实现效果如下:
案例实现代码如下:
(1)Set是没有顺序且不能重复的集合,所以不能通过索引去获取值,它最主要的功能是去除数组中的重复元素,List 去重可以先转 Set 再转 List 。
(2)Set类型的常用属性,见表3.4。
表3.4 Set类型的常用属性
(3)Set类型的常用方法。
① bool add(dynamic value):添加value到集合中,如果集合中以前没有value,则返回true,否则返回false。示例如下:
② void addAll(Iterable<dynamic> elements) :添加多个元素到集合中。示例如下:
③ bool contains(Object? value) :判断集合中是否包含某个元素。示例如下:
④ bool containsAll(Iterable<Object?> other) :判断集合中是否包含某些元素。示例如下:
⑤ Set<dynamic> difference(Set<Object?> other) :求差集。示例如下:
⑥ Set<dynamic> intersection(Set<Object?> other) :求交集。示例如下:
⑦ Set<dynamic> union(Set<dynamic> other) :求并集。示例如下:
⑧ dynamic lookup(Object? object):查询集合中的元素,若找到则返回该元素,否则返回null。示例如下:
⑨ bool remove(Object? value) :删除集合中的某个元素,如果集合中有value则返回true,否则返回false。示例如下:
⑩ void removeAll(Iterable<Object?> elements) :删除集合中的多个元素。示例如下:
⑪ void clear():清空集合。示例如下:
⑫ dynamic firstWhere(bool Function(dynamic) test, {dynamic Function()? orElse}):返回满足条件的第一个元素,如果没有满足添加的元素,则返回orElse回调函数的执行结果。示例如下:
⑬ dynamic lastWhere(bool Function(dynamic) test, {dynamic Function()? orElse}):返回满足条件的最后一个元素,如果没有满足添加的元素,则返回orElse回调函数的执行结果。示例如下:
⑭ void removeWhere(bool Function(dynamic) test) :按条件删除。示例如下:
⑮ void retainAll(Iterable<Object?> elements):只保留在element中的所有元素。示例如下:
⑯ void retainWhere(bool Function(dynamic) test):只保留满足test条件的所有元素。示例如下: