/**
* 要求:去掉List中为 0 的元素
*/
//创建数组和空List
Integer[] ars = {1,0,0,0,5,0,8,9,0,0,0,65,3,0,0};
List<Integer> lists = new ArrayList<Integer>(ars.length);

//数组转为List
Collections.addAll(lists, ars);

1、//list.remove(Object o); 只去掉了第一次出现的 0,不可用
    lists.remove((Integer) 0);

2、

//用for循环试试
for (int i = 0; i < lists.size(); i++) {

if(lists.get(i) == 0)
{
lists.remove(i);
}
}

结果悲剧,还有一个 0 没有去掉。。。。。

3、为什么呢?

原因:List是有序集合,每个元素都有自己的下标,当remove掉一个后,下一个会补位,补上来的这个数就得不到恩惠,不能雨露均沾了

改进一下:

for (int i = 0; i < lists.size(); i++) {

if(lists.get(i) == 0)
{

//如果remove掉一位,后面的值补上,再检查一次这个位置的值
lists.remove(i);
i --;
}
}

4、到此就成功了,雨露均沾

遍历List remove方法,雨露均沾的更多相关文章

  1. 雨露均沾的OkHttp—WebSocket长连接的使用&源码解析

    前言 最近老板又来新需求了,要做一个物联网相关的app,其中有个需求是客户端需要收发服务器不定期发出的消息. 内心OS:

  2. Java基础(37)ArrayList的remove方法

    1.问题描述 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 输入: s = "abcd& ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. Python列表的remove方法的注意事项

    为何没有删除列表中的全部元素? 解释: 按照执行顺序,第一个空格被删除之后,后面的元素会前移(变成['空格','空格','12','23']),指针下一次会指向新列表的第二个元素(即初始状态的第三个空 ...

  5. list集合的遍历3种方法

    package com.sort; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** ...

  6. 遍历并remove HashMap中的元素时,遇到ConcurrentModificationException

    遍历并remove HashMap中的元素时,遇到ConcurrentModificationException for (Map.Entry<ImageView, UserConcise> ...

  7. ThreadLocal源码分析:(三)remove()方法

    在ThreadLocal的get(),set()的时候都会清除线程ThreadLocalMap里所有key为null的value. 而ThreadLocal的remove()方法会先将Entry中对k ...

  8. Java连载85-集合的Contains和Remove方法

    一.包含与删除两种方法解析 1.boolean contains(Object o);判断集合中是否包含某个元素. package com.bjpowernode.java_learning; imp ...

  9. List 重载添加-add,删除-remove方法,以及获取子集方法

    package seday12; import java.util.ArrayList;import java.util.List; /*** @author xingsir* List重载了一对ad ...

随机推荐

  1. es6转码器-babel

    babel 基本使用 安装转码规则 # ES2015转码规则 $ npm install --save-dev babel-preset-es2015 # react转码规则 $ npm instal ...

  2. Kali Linux 安装教程-转

    rootoorotor昨天折腾了 Kali Linux 1.0,把大概的配置过程记录下来,希望对想接触或使用Kali Linux的同学有所帮助.   请注意: 1.本文为面向新手的教程,没技术含量,没 ...

  3. 支付结果回调v7核心,投保确认接口..

    <?xml version="1.0" encoding="GBK"?> <PACKET type="REQUEST"&g ...

  4. c#动态加载dll文件

    1.在写一个记录日志到文件中的类库(生成dll文件copy到一个目录中去,然后在主函数的appconfig中去配置. using System; using System.Collections.Ge ...

  5. Codeforces 627 A. XOR Equation (数学)

    题目链接:http://codeforces.com/problemset/problem/627/A 题意: 告诉你s 和 x,a + b = s    a xor b = x   a, b > ...

  6. c++字符串机理

    在windows编程中,由于编码方式的不同和c与c++的不同而造成了许多复杂的有关字符串之间的转换 首先,windows编码方式有ANSCLL和UNICODE,前者是单字符的,后者是双字符的. 然后, ...

  7. zendstudio 出现failed to create the java machine转

    是因为配置java虚拟机内存太小 打开zend for eclipse 10.5时报了个错: failed to create the java virtual machine google了一下,解 ...

  8. jpa动态创建EntityManagerFactory 态设置数据库连接 EntityManager;

    //jpa动态创建EntityManagerFactory 态设置数据库连接EntityManager;createEntityManagerFactory(String persistenceUni ...

  9. d3d导致cairo不正常

    最近要把cairo集成到项目中,却发现cairo不能工作了 折腾了两天才找到了原因:cairo的一个trick导致浮点数计算错误: http://blog.163.com/lvan100@yeah/b ...

  10. CountDownLatch和CyclicBarrier的区别

    [CountDownLatch.CyclicBarrier和Semaphore]http://www.cnblogs.com/dolphin0520/p/3920397.html   [CountDo ...