List中移除指定元素

简介: List中移除指定元素

例一:

  想在list中删除元素,先看下面的这一段代码:

图片.png
运行结果如下所示,看起来没啥问题,再看下面的例子。
图片.png
例二:

   此时,list中有多个重复的元素,我们还是用原来的方法进行去重,如下所示:

图片.png
运行结果如下所示,貌似出了个小问题,因为有个bb并没有去除掉。
图片.png
原因:

    为什么会出现这种问题呢?当删除第一个bb元素后,下一个元素就会向前移一位 , 而for循环的索引是继续往后加1的,即没删除之前list.get(2)='bb',当删除第一个“bb”后,下一个元素前移,导致此时list.get(1)='bb',list.get(2)='cc',而for循环里面的i并没有发生变化,还是继续执行+1向后遍历的操作,导致“bb”元素逃脱了并没有删除。

解决方式一:

   只需要在发生删除元素的时候,将索引里面的i向前移位即可,即元素发生前移的同时,也让索引发生前移,即i--,如下代码所示:

图片.png
输出结果如下所示:
图片.png

相关文章
|
3月前
|
索引
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
358 3
|
4月前
|
NoSQL Java Redis
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
|
5月前
|
存储 NoSQL 安全
Redis第六弹-List列表-(相当于数组/顺序表)Lpush key element-一次可以插入多个元素(假如key已经存在,并且key对应的value并非是list,则会报错)
Redis第六弹-List列表-(相当于数组/顺序表)Lpush key element-一次可以插入多个元素(假如key已经存在,并且key对应的value并非是list,则会报错)
|
5月前
|
存储 NoSQL Redis
Redis第四弹,Redis实现list时候做出的优化ziplist(压缩链表,元素少的情况),可更好的节省空间list——(内部编码:quicklist)Object encoding
Redis第四弹,Redis实现list时候做出的优化ziplist(压缩链表,元素少的情况),可更好的节省空间list——(内部编码:quicklist)Object encoding
|
6月前
|
Java API
【亮剑】三种有效的方法来删除List中的重复元素Java的List
【4月更文挑战第30天】本文介绍了三种Java中删除List重复元素的方法:1) 使用HashSet,借助其不允许重复值的特性;2) 利用Java 8 Stream API的distinct()方法;3) 对自定义对象重写equals()和hashCode()。每种方法都附带了代码示例,帮助理解和应用。
152 1
|
6月前
|
Java
JAVA——List中剔除空元素(null)的三种方法汇总
JAVA——List中剔除空元素(null)的三种方法汇总
|
6月前
|
SQL XML Java
<foreach>元素中collection=list改成collection=array
<foreach>元素中collection=list改成collection=array
|
6月前
|
算法 安全 Java
java将list中的某个元素移动位置
【2月更文挑战第12天】
226 0
|
6月前
|
Java
Java对list集合元素进行排序的几种方式
Java对list集合元素进行排序的几种方式
68 0
|
6月前
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
62 0

热门文章

最新文章