集合Set
声明变量
Set category = {'书籍', '水果', '服饰'};
Set fruit = new Set();
fruit.add('苹果');
fruit.add('香蕉');
fruit.add('梨子');
print(category);
print(fruit);
属性
Set set = {1, 2, 3, 4, 5, 6};
print(set.first);
print(set.last);
print(set.length);
print(set.isEmpty);
print(set.isNotEmpty);
print(set.single);
方法
集合添加
Set set = {1, 2, 3, 4};
set.add(5);
print(set);
set.addAll({7, 8, 9});
print(set);
Set set = {1, 2, 3, 4};
Set set2 = {888, 999};
print(set.followedBy(set2));
集合删除
Set set = {1, 2, 3, 4};
set.remove(2);
print(set);
set.removeAll({2, 3});
print(set);
set.removeWhere((element) => element == 3);
print(set);
set.clear();
print(set);
print(set.difference({1, 2}));
print(set.intersection({2, 3}));
print(set.union({888, 999}));
集合数据类型转换
Set set = {1, 2, 3, 4};
print(set.join());
print(set.toString());
print(set.toList());
集合遍历
Set set = {1, 2, 3, 4};
set.forEach((element) {
print(element);
});
Set set = {1, 2, 3, 4};
var res = set.map((e) => e * e);
print(res);
Set set = {1, 2, 3, 4};
var res = set.reduce((a, b) => a * b);
print(res);
Set set = {1, 2, 3, 4};
var res = set.fold(10, (a, b) => a * b);
print(res);
Set set = {1, 2, 3, 4};
var res = set.expand((element) => [element, element + 1]);
print(res);
集合匹配
Set set = {1, 2, 3, 4};
print(set.every((element) => element > 2));
print(set.any((element) => element > 2));
var res = set.where((element) => element > 2);
print(res);
var res = set.firstWhere((element) => element > 1);
print(res);
var res = set.lastWhere((element) => element > 2);
print(res);
var res = set.singleWhere((element) => element > 3);
print(res);
Set set = {1, 2, 'a', 4};
Iterable<int> res = set.whereType();
print(res);
Iterable<String> res2 = set.whereType();
print(res2);
set.retainWhere((element) => element == 5);
print(set);
set.retainWhere((element) => element > 2);
print(set);
set.retainAll({2, 3});
print(set);
set.retainAll({2, 5});
print(set);
print(set.contains(3));
print(set.containsAll({3, 2}));
print(set.lookup(2));
取值和略值
print(set.elementAt(2));
print(set.skip(2));
print(set.skipWhile((value) => value < 2));
print(set.take(2));
print(set.takeWhile((value) => value < 3));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】