返回首页
Array List删除元素的简单总结 - 朗尊软件,企业级电商平台提供商
发表时间:2019-12-20 阅读:2163
新零售系统
Java商城
Legendshop大讲堂之Array List删除元素的简单总结


在工作中经常会根据根据某个条件来对ArrayList做删除操作,以下来做个简单的总结:


首先获取到了一个存放String类型的ArrayList实例,希望删除元素值为""的元素,

运用了以下几种方法(错误的/正确的)




removeA所示,使用简单for循环遍历listA,若遍历出的元素值为"",则调用listAremove方法,将其从list中删除,但是removeA只删除了一个值为""元素,并没有达到我们的目的。

当我们操作listA,其数据结构如下所示(ArrayList本身使用Object[]来保存数据):



i=2(循环第三次) ,取得了角标为2""元素,执行了listA.remove(2)的删除操作,此时,listA所维护的Object[]做移位操作,角标为3及其以后的元素,依次往前移动一个空位,得到删除后的结构,初始时角标为3""元素,角标变为2,进行下一次循环时,i=3(循环第四次),listA.get(3)取得元素为"",不符合删除条件,由此可以知道,由于数组移位的原因,初始时角标为3""元素并没有并没在循环中参与删除条件的比对,导致我们漏删,没有达到我们预期的结果,因此可以对代码做一下改动




相当于删除一个元素时,i不做自加运算,继续遍历删除位的元素.

在循环删除ArrayList的元素时,我们经常会运到数组角标越界java.lang.IndexOutOfBoundsException异常,如下面的代码;




这是因为当删除一个元素时,ArrayListsize会自减,在删除元素的过程中不断变小,当传入的index数值大于ArrayList当前size,就会抛出数组角标越界的异常;



为了避免ArrayList删除元素时发生异常,可以使用它的iterator(迭代器)对象来删除元素。



但其实iteratorremove()方法也是调用的ArrayListremove()来删除元素,只是把上面removeC()i自减的操作放到了iterator自己的remove()方法中。



在运用iteratorremove()方法时,我们可能会写出下面的代码,导致抛出java.util.ConcurrentModificationException 异常;




其原因是迭代器的next()方法每次都会检查ArrayList的modCount(elementData被修改的次数)是否与迭代器的expectedModCount(迭代器期望的集合数据被修改的次数相等),如果不等则抛出异常;



最后,可以通过从逆向遍历元素的方式,避免数组结构变化带来的各种错误




文章来源:广州朗尊软件科技有限公司
【朗尊软件】是中国领先的专业电商平台提供商,秉承着“专业塑造传奇,用心成就电商”的理念, 专注于为用户提供一体化的电商解决方案及服务,搭建垂直行业垂直电商一站式营销管理工具。目前拥有自主研发的电子商务平台产品:SAAS云平台、微商城小程序、云商城、云小店、代理商平台、B2B2C商城、B2B大宗交易平台、跨境电商服务、大数据平台搭建、微服务架构等产品、各种定制商城及解决方案。
网站声明:以上内容为朗尊软件官方网站的原创文章,如需转载,请注明出处,谢谢合作!
上一篇: 未来智慧供应链的三大趋势
下一篇: 从跳楼孕妇到阿里12位女性合伙人,女性该如何定位自己。 - 朗尊软件,企业级电商平台提供商
相关文章
区块链的落地价值 - 朗尊软件,企业级电商平台提供商
主流编程语言的详细对比 - 朗尊软件,企业级电商平台提供商
传统制造企业如何通过工业品B2B网站转型高端制造企业?
开源商城系统介绍企业写开源多用户商城 - 朗尊软件,企业级电商平台提供商
供应链金融浅析 - 朗尊软件,企业级电商平台提供商
电商头条新闻
1
工业行业 | 工业产品B2B跨境电商解决方案
2
私域电商如何赶上智能热潮?
3
三一全球购 | B2B2C电商平台+员工福利平台的定制解决方案
4
跨境电商 | B2B2C跨境电商系统解决方案
5
社群团购系统——社区流量与社交电商融合
热门标签
小羊直播
供应链
电商系统
Java商城
电商平台
B2B商城
跨境电商
商城平台
新零售系统
云商城系统
B2B2C商城系统
多用户商城
微服务商城
供应链商城
商城系统
电商直播系统
私域电商
大宗交易平台
数字化转型
直播供应链
全渠道零售
O2O商城系统
java开源商城
SAAS云平台
B2C商城系统
SaaS系统
生鲜电商
用户标签
APP
S2B
MRO平台
微信小程序商城
移动商城
社区电商
营销活动
新零售电商
分销系统
门店管理
分销体系
社交电商
直播电商
数字化
客服系统
社群电商
引爆流量
供应链金融
员工福利平台
工会福利商城
企业智慧采购平台
机械设备
抖音电商
数智化
数字化
区块链
S2B2C
B2B2B
订单融资
数字中台
VUE
用户标签
仓单融资
大数据
应收账款
集采代采
医药电商
推荐阅读
公告:【微信小程序备案】9月1日起,微信小程序需完成备案才可上架!
工业行业 | 工业产品B2B跨境电商解决方案
私域电商如何赶上智能热潮?
三一全球购 | B2B2C电商平台+员工福利平台的定制解决方案
跨境电商 | B2B2C跨境电商系统解决方案