Flutter List数组避免插入重复数据 马斯克Neuralink拟将业务扩展到德州 招募程序员、工程师 《UnityAPI.Gyroscope陀螺仪》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Unity+Gyroscope+rotationRate+立钻哥哥++OK++) CDMA(Code Division Multiple Access码分多址) 上海项目调研,走起,谈谈我这八年的经验 JdbcUtils工具类的使用 Oracle19c安装教程及PLSQL配置常见错误解决办法 net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "(" at line 10, colum MySQL数据库--MySQL高级SQL语句三(数据库函数、存储过程、存储过程的创建、修改与删除) MySQL切分函数substring() - 大家务必要get到这些点 几种常见的数据库连接的URL写法(包括国产数据达梦DM) Ecology9 组织权限 查询所有上级部门ID mysql数据库入门教程(14):函数 Centos-7.7 安装 sysbench 压测服务器以及 MySQL 聚焦教育行业AI+大数据,三盟科技完成超亿元B1轮融资 大数据杀熟!官方出手了 从Python到Haskell:程序员为何与函数式编程“坠入爱河”? 程序员为何与函数式编程“坠入爱河”? 易语言多线程API模块综合应用 SpringMVC从基础到源码 数据结构19~.选择类排序 CSS动画的毕业设计 成功三大定律:荷花定律、金蝉定律、竹子定律 HELLO WORLD 搞技术的人生技巧——装贪财 做程序员攒钱10年,够一百万左右回农村存银行一个月6千利息现实吗? ​程序员离职后收到原公司 2400 元,被告违反竞业协议赔 18 万 甘肃省普通高等学校高职(专科)升本科考试英语科考试大纲(试行) 手撕Promise/A+规范及其周边函数的源码实现 《Web页面设计》20春期末考核 详解vue中使用echarts地图实现上钻下钻的可视化 三级下钻 省>市>县 jsArray常用API之替代传统fori循环 拯救xmlrpc.php让WordPress瘫痪的的六种办法 外边距溢出解决方法 高度塌陷如何解决 Vue组件基础--简单了解vue组件 自定义wordpress登陆界面全屏渐变图片轮播 聊聊js的深拷贝与浅拷贝 打造无限可能的数字时代!谈谈大数据在零售行业中的应用 9月生猪价格如何?国家生猪大数据中心:开学季带动肉类消费需求增加 江湖有故人,欢迎来到程序员的江湖 用于卫星信号载波的宽带频谱分析仪-新品发布(下) [Visual Studio 2017] 在线版软件安装教程 改变世界的webp图片技术,节约你的流量和带宽 Android APP字体随系统字体调整造成界面布局混乱问题解决方案 2020-09-03 IOS开发 多section瀑布流+悬停Header OC shell脚本一键同时推送代码至github和gitee BroadcastReceiver代码分析 不会吧,不会吧,不愧是Ajax,jQuery Ajax啊 微信小程序 使用 fly接口请求框架
您的位置:首页 >物联网 >

Flutter List数组避免插入重复数据

志当存高远。——诸葛亮

 List

具有一定长度存在索引的对象集合(长度为0不存在索引,长度>0存在索引)

常见列表

1、定长列表

默认值null

例如:List<int> fixedLengthList = new List(2)、List<int> fixedLengthList = new List(8)

List<int> fixedLengthList = new List(2);for(int i=0;i<2;i++){ print("索引为${i}的值${fixedLengthList[i]}");}
I/flutter ( 9251): 索引为0的值nullI/flutter ( 9251): 索引为1的值null

 

 

固定长度不可修改 

List<int> fixedLengthList = new List(2);//改变固定数组长度fixedLengthList.length=30;

Unsupported operation: Cannot change the length of a fixed-length list

大概意思:无法更改固定长度数组的长度

List<int> fixedLengthList = new List(2);///执行添加数据操作fixedLengthList.add(0);fixedLengthList.add(1);
List<int> fixedLengthList = new List(2);fixedLengthList[0]=1;fixedLengthList[1]=2;///添加数据fixedLengthList.addAll([3,4]);

 Unsupported operation: Cannot add to a fixed-length list大概以上: 不能添加数据到固定长度数组 

List<int> fixedLengthList = new List(2);//执行插入数据fixedLengthList.insert(0, 0);

Unsupported operation: Cannot add to a fixed-length list大概意思: 不能添加数据到固定长度数组  

 List<int> fixedLengthList = new List(2);///执行删除操作fixedLengthList.removeLast();
List<int> fixedLengthList = new List(2);///执行删除操作fixedLengthList.removeAt(0);
 List<int> fixedLengthList = new List(2);fixedLengthList[0]=1;fixedLengthList[1]=2;///删除包含索引0和1范围内数据fixedLengthList.removeRange(0, 1);
List<int> fixedLengthList = new List(2);fixedLengthList[0]=1;fixedLengthList[1]=2;///删除索引0-1,然后在进行替换删除索引值fixedLengthList.replaceRange(0, 1, [3,4]);

Unsupported operation: Cannot remove from a fixed-length list大概意思:不能删除固定长度数组数据

List<int> fixedLengthList = new List(2);///执行清除数据操作fixedLengthList.clear();

Unsupported operation: Cannot clear a fixed-length list大概意思:不能清理固定长度数组数据

可排序、替换、截取

List<int> fixedLengthList = new List(2);fixedLengthList[0]=1;fixedLengthList[1]=2;///执行截取指定范围的数组fixedLengthList.sublist(0);///排序fixedLengthList..sort((a, b) => a.compareTo(b));///fixedLengthList.setRange(0, 1, [3,4],0);///索引0-1范围的值不包括1,修改成3fixedLengthList.fillRange(0, 1,3);

2、可增长列表 

可改变数组长度、 可执行添加、删除、可排序、可替换、可截取

.可增长列表[]保留了内部缓冲区

.缓冲区可增长

.添加数据操作在固定时间内执行 (设置固定长度会花费与新长度成比例的时间,修改容量,添加操作将需要立即增加缓冲区容量)

.列表是可以迭代的

.在执行列表操作时,例如在调用forEach或sort期间,通常不允许修改列表的长度(添加或删除元素)

.通过直接迭代列表或通过迭代由列表支持的Iterable更改列表的长度,可以中断迭代

List<int> fixedLengthList = [];//改变数组长度fixedLengthList.length=2;///执行添加数据操作fixedLengthList.add(0);fixedLengthList.add(1);fixedLengthList[0]=1;fixedLengthList[1]=2;///添加数据fixedLengthList.addAll([3,4]);//执行插入数据fixedLengthList.insert(0, 0);///执行删除操作fixedLengthList.removeLast();///执行删除操作fixedLengthList.removeAt(0);///删除包含索引0和1范围内数据fixedLengthList.removeRange(0, 1);///删除索引0-1,然后在进行替换删除索引值fixedLengthList.replaceRange(0, 1, [3,4]);fixedLengthList.sublist(0);fixedLengthList..sort((a, b) => a.compareTo(b));fixedLengthList.setRange(0, 1, [3,4],0);fixedLengthList.fillRange(0, 1,3);///执行清除数据操作fixedLengthList.clear();

3、contains 过滤重复 添加

(int、double、bool、String)类型数据

1、int类型数组中插入重复数据 

List<int> listInts = [];void addIntData(int addValue){bool isContainer=listInts.contains(addValue);if(!isContainer){listInts.add(addValue);}print("数组长度${listInts.length}");}

I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1 

 2、double类型数组中插入重复数据

List<double> listDouble = [];void addDoubleData(double addValue){bool isContainer=listDouble.contains(addValue);if(!isContainer){listDouble.add(addValue);}print("数组长度${listDouble.length}");}

I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1 

3、String类型数组中插入重复数据

 List<String> listStrings = [];void addStringData(String addValue){bool isContainer=listStrings.contains(addValue);if(!isContainer){listStrings.add(addValue);}print("数组长度${listStrings.length}");}

I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1 

4、boolean类型数组插入重复数据

List<bool> listBool = [];void addBoolData(bool addValue){bool isContainer=listBool.contains(addValue);if(!isContainer){listBool.add(addValue);}print("数组长度${listBool.length}");}

I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1I/flutter (28028): 数组长度1 

4、List对象去重 

class A{String a;int b;A(this.a, this.b);}

1、要添加的对象A的每个值和数组里面存在的每个对象的值做比较 (效率低、适合少量数据去重)

List<A> listAs = [];void addAData(A addValue){int length=listAs.length;if(length==0){listAs.add(addValue);}else {for (int i = 0; i < length; i++) {A a = listAs[i];if (a.a != addValue.a && a.b != addValue.b) {listAs.add(addValue);}}}print("数组长度${listAs.length}");}

2、List配合Set去除重复对象

List<A> listAs = [];Set<A> setAs=new Set<A>();void addASData(A addValue){if(listAs.length==0) {listAs.add(addValue);setAs.addAll(listAs);}else{listAs.add(addValue);}List<A> list=setAs.toList();print("数组长度${list.length}");}
addASData(new A("a", 0));

I/flutter (10386): 数组长度1I/flutter (10386): 数组长度1I/flutter (10386): 数组长度1I/flutter (10386): 数组长度1I/flutter (10386): 数组长度1I/flutter (10386): 数组长度1

参考:

list :https://api.dart.dev/stable/2.9.2/dart-core/List-class.html

Set:https://api.dart.dev/stable/2.9.2/dart-core/Set-class.html 

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。