android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现

List

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

常见列表

1、定长列表

默认值null

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

List fixedLengthList = new List(2);

for(int i=0;i<2;i++){

print("索引为${i}的值${fixedLengthList[i]}");

}

I/flutter ( 9251): 索引为0的值null

I/flutter ( 9251): 索引为1的值null

f6866c6699e27d7b34e3eb8be8dff78e.png

ab9d5a323608e5ad91e70413baf71d35.png

固定长度不可修改

List fixedLengthList = new List(2);

//改变固定数组长度

fixedLengthList.length=30;

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

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

List fixedLengthList = new List(2);

///执行添加数据操作

fixedLengthList.add(0);

fixedLengthList.add(1);

List fixedLengthList = new List(2);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///添加数据

fixedLengthList.addAll([3,4]);

Unsupported operation: Cannot add to a fixed-length list

大概以上: 不能添加数据到固定长度数组

List fixedLengthList = new List(2);

//执行插入数据

fixedLengthList.insert(0, 0);

Unsupported operation: Cannot add to a fixed-length list

大概意思: 不能添加数据到固定长度数组

List fixedLengthList = new List(2);

///执行删除操作

fixedLengthList.removeLast();

List fixedLengthList = new List(2);

///执行删除操作

fixedLengthList.removeAt(0);

List fixedLengthList = new List(2);

fixedLengthList[0]=1;

fixedLengthList[1]=2;

///删除包含索引0和1范围内数据

fixedLengthList.removeRange(0, 1);

List 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 fixedLengthList = new List(2);

///执行清除数据操作

fixedLengthList.clear();

Unsupported operation: Cannot clear a fixed-length list

大概意思:不能清理固定长度数组数据

可排序、替换、截取

List 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,修改成3

fixedLengthList.fillRange(0, 1,3);

2、可增长列表

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

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

.缓冲区可增长

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

.列表是可以迭代的

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

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

List 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 listInts = [];

void addIntData(int addValue){

bool isContainer=listInts.contains(addValue);

if(!isContainer){

listInts.add(addValue);

}

print("数组长度${listInts.length}");

}

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

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

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

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

List listDouble = [];

void addDoubleData(double addValue){

bool isContainer=listDouble.contains(addValue);

if(!isContainer){

listDouble.add(addValue);

}

print("数组长度${listDouble.length}");

}

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

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

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

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

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

List listStrings = [];

void addStringData(String addValue){

bool isContainer=listStrings.contains(addValue);

if(!isContainer){

listStrings.add(addValue);

}

print("数组长度${listStrings.length}");

}

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

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

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

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

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

List listBool = [];

void addBoolData(bool addValue){

bool isContainer=listBool.contains(addValue);

if(!isContainer){

listBool.add(addValue);

}

print("数组长度${listBool.length}");

}

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

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

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

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

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

4、List对象去重

class A{

String a;

int b;

A(this.a, this.b);

}

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

List 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 listAs = [];

Set setAs=new Set();

void addASData(A addValue){

if(listAs.length==0) {

listAs.add(addValue);

setAs.addAll(listAs);

}else{

listAs.add(addValue);

}

List list=setAs.toList();

print("数组长度${list.length}");

}

addASData(new A("a", 0));

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

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

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

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

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

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

参考:

到此这篇关于Flutter List数组避免插入重复数据的实现的文章就介绍到这了,更多相关Flutter List 重复插入内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[js]jquery里的jsonp实现ajax异源请求

同源请求-jquery <script type"text/javascript" src"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script type"text/javascript">$.ajax({url: "data.txt",type: "get",dataType…

android listview remove 动画,给Android ListView添加删除item动画

给Android ListView添加删除item动画给listview删除一个item的时候加上一个折叠动画&#xff0c;感觉效果会好一点。步骤是当删除一个view&#xff0c;先用动画把view的高度改变&#xff0c;看上去就是折叠的效果。当动画完成的时候&#xff0c;再真正把item移除。private void…

Css 选择器 算法 规则

首先上图 css 命令在读取时是按照其优先级的高低的先后顺序来解读的&#xff0c;当优先级相同时是按照其css命令写的先后顺序来读取的&#xff0c;即后面的css覆盖&#xff08;前后css属性设置 不同时&#xff09;或继承&#xff08;前后css属性设置相同或后面未设置该css属性时…

Python算法——二叉树

一、二叉树 from collections import dequeclass BiTreeNode:def __init__(self, data):self.data dataself.lchild Noneself.rchild Nonea BiTreeNode(A) b BiTreeNode(B) c BiTreeNode(C) d BiTreeNode(D) e BiTreeNode(E) f BiTreeNode(F) g BiTreeNode(G)e.lchil…

艾伟_转载:.NET 4.0新特性-- Corrupted State Exceptions

作为程序员&#xff0c;我想很多人应该都有过跟异常打交道的经历。而且相信也有很多人也都写过catch(Exception e){//blabla}这种把所有未知异常一股脑儿捕获并处理掉的代码吧。不管是为敷衍客户也好&#xff0c;让程序继续运行以避免糟糕的用户体验也罢&#xff0c;在微软眼中…

艾伟_转载:使用Lambda表达式编写递归函数

前言 著名的牛顿同学曾经说过&#xff1a;如果说我比别人看得更远些,那是因为我站在了巨人的肩上. 原文&#xff1a;If I have been able to see further, it was only because I stood on the shoulders of giants. Whats Lambda表达式? 请参考msdn&#xff1a;Lambda 表达式…

腾讯测试鸿蒙系统,爆料:荣耀 30 Pro已开始测试华为鸿蒙系统

某数码博主今日放出了一张华为内部关于荣耀 30 Pro 测试 HarmonyOS 的截图&#xff0c;图片显示该机正运行基于 HarmonyOS 2.0 开发者测试版的系统。此外&#xff0c;他还透露荣耀 30 系列、V30 系列、Play4 Pro 下个月将升级到华为鸿蒙系统。华为在 2019 年开发者大会上正式推…

html多行文本框下拉,html基础-表单控件、密码框、单选按钮、复选框、多行文本框、下拉列表、按钮(提交、图片、重置)...

表单的介绍(将前端页面表单的值发送给后台&#xff0c;后台通过表单中name属性取值)可以获取客户端的信息(数据)&#xff0c;表单有各种各样的控件&#xff0c;输入框&#xff0c;复选框 按钮等表单的功能&#xff1a;交互功能表单的工作原理&#xff1a;浏览有表单的页面&…

Lync Server 2010的部署系列_第七章 部署边缘服务器(上)

一、配置边缘支持的内部DNS记录 1) 登录DC.Gianthard.com&#xff08;192.168.1.11&#xff09;。在相应的 DNS 服务器上&#xff0c;依次单击“开始”、“控制面板”、“管理工具”&#xff0c;然后单击“DNS”。 2) 在 SIP 域的控制台树中&#xff0c;展开“正向查找区域”&a…

html5 txt文件上传,JavaScript html5利用FileReader实现上传功能

本文实例为大家分享了H5利用FileReader上传文件的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下1. Html部分文件上传演练Browse...2. JS部分var result document.getElementById("result");var input document.getElementById("file_input");…

一起谈.NET技术,ASP.NET 请求处理流程

HTTP处理流程图 以上流程的一些概念解释&#xff1a; 1.http.sys 是一个位于Win2003和WinXP SP2中的操作系统核心组件&#xff0c;能够让任何应用程序通过它提供的接口&#xff0c;以http协议进行信息通讯。 温馨提示&#xff1a;如果用户不慎删除了该驱动文件&#xff0c;不用…

链接在HTML的英文,英文:A链接标记ie下会自动补全href_HTML/Xhtml_网页制作

英文:A链接标记ie下会自动补全href.Whilst working on the Ajax Link Tracker and MapSurface I have come across an inconsistency in how the href attribute is retrieved using DOM Scripting.The href attribute is different to other element attributes in that the v…

python实现文件加密

前言&#xff1a; 想实现批量文件加密&#xff0c;可惜批量。展时没有思路 0x1 没有加密前的图片 加密后&#xff01;&#xff01;&#xff01; &#xff01;&#xff01;&#xff01;打不开了 0x02: 代码 import hashlibdef get_sha1(f):xdopen(E:/1.txt,rb).read() #以读二进…

教徒计划出品:升级ESXI41-ESXI5

这个文档是教徒计划“教徒第一期”学员做的升级ESX41到ESXI5的资料&#xff0c;以后教徒计划学员做的资料共享时&#xff0c;我都会打上“教徒计划出品”字样&#xff0c;这样有别于“现任明教教主”出品。这样能够确认是谁主导做的这个事情。“教徒计划”这个平台能够给安全CC…

百度2011大会见闻:百度开始推出耀主页

9月2号是百度大会的日子&#xff0c;之前通过51CTO注册&#xff0c;获得了参会资格&#xff0c;感谢51CTO带来的机会&#xff0c;可以有幸到现场观看到百度总裁李彦宏的精彩演讲。<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />…

单招计算机英语面试口语,英语面试口语对话技巧:教育背景

2021年高职单招升学一对一咨询高职单招袁老师:16623303056(微信)英语面试口语对话技巧:教育背景一、常见的英语面试对话1a&#xff1a;can you read and write english and german?你能用英语和德语读写吗&#xff1f;b&#xff1a;no, im proficient in both written and spo…

Bootstrap-CSS:表格

ylbtech-Bootstrap-CSS&#xff1a;表格1.返回顶部 1、Bootstrap 表格 Bootstrap 提供了一个清晰的创建表格的布局。下表列出了 Bootstrap 支持的一些表格元素&#xff1a; 标签描述<table>为表格添加基础样式。<thead>表格标题行的容器元素&#xff08;<tr>…

Missing artifact net.sf.json-lib:json-lib:jar:2.4错误和Eclipse安装Maven插件错误

微信公众号&#xff1a;compassblog 欢迎关注、转发&#xff0c;互相学习&#xff0c;共同进步&#xff01; 有任何问题&#xff0c;请后台留言联系&#xff01; 1、配置Maven项目的pom.xml文件报错 &#xff08;1&#xff09;、错误描述&#xff1a;Missing artifact net.sf.j…

web前端【补充】CSS补充

css常用的一些属性&#xff1a; 1.去掉下划线 &#xff1a;text-decoration:none ;2.加上下划线&#xff1a; text-decoration: underline; 3.调整文本和图片的位置&#xff08;也就是设置元素的垂直对齐方式&#xff09;&#xff1a;vertical-align:-20px; 没设置之前&#xf…

XNA游戏:Hello XNA

下面创建一个简单的Windows Phone 7的XNA 程序&#xff0c;只是一个Hello XNA的文本&#xff0c;从屏幕的左上角一直往右下角移动&#xff0c;通过该例子来开始Windows Phone 7 XNA的游戏编程。 新建一个项目后可以看到这样的一个项目工程结构&#xff0c;如图所示。 Content项…