注意list集合remove(index)方法的用法
来源:互联网 发布:linux线程池 编辑:程序博客网 时间:2024/05/29 03:02
相信大家都非常的熟悉list集合,不管是在算法还是实际项目中,我们都会经常用到它。既然那么常用,那么我对它的一些常用方法真的都掌握了吗?
之前我在做项目的过程中,就掉进了list集合中remove(index)这个方法的坑里了。需求是这样的:后台我就是用list集合来封装数据,然后通过responsebody转化为json数据返回给前端,在返回数据之前,我需要根据用户的IP来剔除一些数据,因为有些数据有些用户是不能看的,因此我就用了list集合中的remove(index)方法,但是我发现,如果用for循环来剔除的话,结果还是不能完全剔除,为什么会这样呢?
后来我重新查了一下API,该方法原来是这样的:
可以看出,原来当执行完remove(index)该方法的时候后续的所有的元素都会向左移动,这就是我问题的所在 了。比如一下代码:
for(int i=0;i<list.size();i++){ if(该用户不能看) list.remove(i);}当我用上面的代码的时候,就会出现问题,比如A:index=1和B:index=2的数据都是我想剔除的,那么当执行完remove(1)的时候,这时已经删除了A数据,同时后续所有元素就会向左移动,而此时i已经等于2了,但我想删除的B数据已经向左移动到了index=1;所以B数据无法删除。经过我这样分析,解决该问题,只需要再添加一句代码就可以了。
for(int i=0;i<list.size();i++){ if(该用户不能看){ list.remove(i); i--; }}加了i--之后,它就会又重新从index=1的位置开始检查了,因此解决上面的问题。这些都是一些比较细节的东西,稍微不注意的话,都会掉进陷阱里无法自拔。
所以说为什么有些程序健壮性不够强大,就是工程师忽略了一些比较细节的东西,细节决定成败,养成良好的习惯很重要!
阅读全文
0 0
- 注意list集合remove(index)方法的用法
- List 的remove方法注意点
- 关于集合List的remove方法
- list.remove()时出问题,集合的remove方法注意事项
- 使用List中remove方法时需要注意的问题
- Java list.remove( )方法需要注意的两个地方
- Java list.remove( )方法需要注意的两个地方
- List remove的注意点
- List使用remove(index);遇到的问题;
- list的remove方法
- 深刻认识List集合remove方法
- list remove 操作要注意的地方
- List remove中要注意的问题
- List remove中要注意的问题
- List remove中要注意的问题
- list remove 操作要注意的地方
- list.remove需注意的问题
- 关于用集合的remove方法删除list集合中满足条件的元素问题
- 欢迎使用CSDN-markdown编辑器
- Spring MVC-数据绑定
- Python 基础语法
- 【总结】业精于勤荒于嬉——年终总结(2017年8月30日)
- 身为UI设计师,如何应对失业的恐慌
- 注意list集合remove(index)方法的用法
- Android中 Lottie库初步实践与应用场景分析
- bootstrap一点心得
- LINUX常用系统命令
- 上传绕过-实验吧
- 利用树莓派3 实现简单的人机交互程序
- STORM入门之(TridentAPI,Each)
- S/Jquery 中怎么定义存储一个类似map中key-value形式的变量,并且怎样动态赋值key和value?
- NS3 Tracing System