List遍历
来源:互联网 发布:蓝牙共享网络 上不了网 编辑:程序博客网 时间:2024/06/05 06:30
工作中用for遍历去除数据,发生了漏过滤现像,摆弄一下遍历:
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ForTest {public static void main(String[] args) {test5();}/** * 警告:存在漏过滤数据情况 * 在遍历时,按照键的从小到大for (int i=0; i<list.size(); i++) * * 理想情况下是所有带“a”的字符串都被去除,结果为: * [e] * 实际上结果为: * [ba, da, e] * 在遍历时,i是固定按次增加,list减少 */public static void test1(){List<String> list = new ArrayList<String>();list.add("a");list.add("ba");list.add("ca");list.add("da");list.add("e");for (int i=0; i<list.size(); i++) {String string = list.get(i);if(string != null && string.contains("a")){list.remove(i);}}System.out.println(list);}/** * 在遍历时,按照键的从小到大for (int i=0; i<list.size(); i++) * * 理想情况下是所有带“a”的字符串都被去除,结果为: * [e] * 实际上结果为: * [e] */public static void test2(){List<String> list = new ArrayList<String>();list.add("a");list.add("ba");list.add("ca");list.add("da");list.add("e");for (int i=0; i<list.size(); i++) {String string = list.get(i);if(string != null && string.contains("a")){list.remove(i);i -= 1;}}System.out.println(list);}/** * 在遍历时,按照键的从大到小for (int i=list.size()-1; i>-1; i--) * * 理想情况下是所有带“a”的字符串都被去除,结果为: * [e] * 实际上结果为: * [e] */public static void test3(){List<String> list = new ArrayList<String>();list.add("a");list.add("ba");list.add("ca");list.add("da");list.add("e");for (int i=list.size()-1; i>-1; i--) {String string = list.get(i);if(string != null && string.contains("a")){list.remove(i);}}System.out.println(list);}/** * 在遍历时,使用Iterator listIterator = list.iterator();while (listIterator.hasNext()) * * 理想情况下是所有带“a”的字符串都被去除,结果为: * [e] * 实际上结果为: * [e] */public static void test4(){List<String> list = new ArrayList<String>();list.add("a");list.add("ba");list.add("ca");list.add("da");list.add("e");Iterator listIterator = list.iterator();while (listIterator.hasNext()) {String string = (String) listIterator.next();System.out.println(string);if(string.contains("a")){listIterator.remove();}}System.out.println(list);}/** * 在任意方式遍历时,把需要的数据放到新的返回list中获取需要数据 * * 理想情况下是所有带“a”的字符串都被去除,结果为: * [e] * 实际上结果为: * [e] */public static void test5(){List<String> list = new ArrayList<String>();List<String> respList = new ArrayList<String>();List<String> respList1 = new ArrayList<String>();list.add("a");list.add("ba");list.add("ca");list.add("da");list.add("e");for (String string : list) {if(string != null && string.contains("a")){respList.add(string);}else{respList1.add(string);}}System.out.println(list);System.out.println(respList);System.out.println(respList1);}}
希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充;转载请注明出处!
阅读全文
1 0
- List遍历
- list遍历
- list遍历
- List遍历
- freemark-----------list(list,map遍历)
- JAVA LIST 遍历[转]
- List的数据遍历
- List的遍历
- JAVA LIST 遍历
- 页面遍历数组list
- Java list 遍历
- 遍历list数组
- List的遍历
- 遍历list数组
- java list遍历
- 遍历List集合
- STL MAP LIST 遍历
- JAVA LIST 遍历[转]
- 职场必杀技之高效工作
- hadoop系列之一安装linux系统CentOS6.7
- 自动化测试
- Andriod开发-数据持久化技术
- [工作流与Activiti]
- List遍历
- python:集合
- Choose the best route(HDU-2680)
- 多项式插值中的一些定理证明
- 使用HttpURLConnection访问网络
- 关于低位数二进制数转换为高位二进制数的一些心得体会
- SSD 简单的选择重点
- 动态规划之 最优流水调度问题
- 【源码分析】走进EventBus