版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxl517116279/article/details/88410203
声明
Set
是一个元素唯一的无序队列
松散
var a = new Set();
a.add('java');
a.add('php');
a.add('python');
a.add('java');
a.add('sql');
a.add('swift');
a.add('dart');
强类型
var b = new Set<String>();
b.addAll(['dart', 'c#', 'j#', 'e#']);
基本属性
名称 | 说明 |
---|---|
isEmpty | 是否为空 |
isNotEmpty | 是否不为空 |
first | 第一个 |
last | 最后一个 |
length | 个数 |
常用方法
名称 | 说明 |
---|---|
addAll | 添加 |
contains | 查询单个 |
containsAll | 查询多个 |
difference | 集合不同 |
intersection | 交集 |
union | 联合 |
lookup | 按对象查询到返回对象 |
remove | 删除单个 |
removeAll | 删除多个 |
clear | 清空 |
firstWhere | 按条件正向查询 |
lastWhere | 按条件反向查询 |
removeWhere | 按条件删除 |
retainAll | 只保留几个 |
retainWhere | 按条件只保留几个 |
b.addAll(['dart', 'c#', 'j#', 'e#']);
print(b.contains('dart'));
print(b.containsAll(['dart', 'swift']));
print('b => $b');
print(a.difference(b));//返回a有b没有的set,补集
print(a.intersection(b));//a和b都有的set,交集
print(b.lookup('dart'));
print(b.union(a));//并集
b.remove('dart');
b.removeAll(['dart','c#']);
b.clear();
print(b.firstWhere((it) => it == 'c#'));
print(b.lastWhere((it) => it == 'c#'));
b.removeWhere((it) => it == 'c#');
b.retainAll(['e#']);
b.retainWhere((it) => it == 'e#');
b.retainWhere((it) {
bool ret = it == 'e#';
return ret;
});