`
hzy3774
  • 浏览: 984914 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Java常用几种对List遍历,条件删除的操作

 
阅读更多

一般常用的有三种:普通for循环,foreach循环,Iterator循环

 

package com.hzy.demo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Demo {

	private static void printList(List<String> l) {
		System.out.print("List: ");
		for (String s : l) {
			System.out.print(s);
		}
		System.out.println();
	}

	public static void main(String[] args) {

		/** 创建一个List */
		List<String> li = new ArrayList<String>();
		for (int i = 0; i < 20; i++) {
			String str = String.format("%d%c ", i, 'a' + i);
			li.add(str);
		}
		printList(li);

		/** 采用迭代器遍历,可根据条件删除 */
		Iterator<String> iterator = li.iterator();
		while (iterator.hasNext()) {
			String item = iterator.next();
			if (item.equals("0a ")) {
				iterator.remove();
			}
		}
		printList(li);

		/** foreach循环,不能根据条件可以删除:java.util.ConcurrentModificationException */
		for (String string : li) {
			if (string.equals("1b ")) {
				// li.remove(string);
			}
		}
		printList(li);

		/** for循环, 每次要重新计算list大小 */
		for (int i = 0; i < li.size(); i++) {
			if (li.get(i).equals("2c ")) {
				li.remove(i);
			}
		}
		printList(li);
	}
}

 foreach循环体内不要删除操作,使用普通for循环或迭代器操作。

 

分享到:
评论

相关推荐

    Java遍历集合方法分析(实现原理、算法性能、适用场合)

    除此之外,Java对于数据集合的遍历,也提供了几种不同的方式。开发人员必须要清楚的明白每一种遍历方式的特点、适用场合、以及在不同底层实现上的表现。下面就详细分析一下这一块内容。 数据元素是怎样在内存中存放...

    JAVA上百实例源码以及开源项目源代码

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    JAVA上百实例源码以及开源项目

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    Java面试宝典2020修订版V1.0.1.doc

    29、List遍历方式有多少种 76 30、Map怎么遍历 76 31、怎么获取Map所有的key,所有的value 77 32、获取Class的实例有几种方式 77 33、怎么获取类中所有的方法,所有属性 77 34、JDBC常用接口有哪些? 77 35、...

    Java中List集合对象去重及按属性去重的8种方法

    主要介绍了Java中List集合对象去重及按属性去重的8种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一地的参考借鉴价值,需要的朋友可以参考下

    JAVA面试宝典包含名词解释,常问问题。

    1.JDK 和 JRE 有什么区别? 2.Java 内存区域 3.== 和 equals 的区别是什么? 4.final 在 Java 中有什么作用? 5.String 类的常用方法...8.Map集合几种遍历方式? 9.List集合的特性 10.如何实现数组和 List 之间的转换?

    JAVA面试题最全集

    76.EJB有哪几种?区别是什么? 77.JavaBean与EJB有什么区别? 78.软件开发生命周期有哪几个阶段? 79.软件开发有哪些因素? 80.软件开发中如何进行版本控制? 81.UML中,类视图如何表示类中的继承与聚合? 82.客户端...

    java面试题

    51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...

    Java服务器端开发面试.doc

    涉及到各种效率问题等,里面最好阅读一下源码 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一 个元素,然后size是否变化等等问题 JAVA垃圾回收,内存结构 异常的种类 Object类,哪些...

    java 面试题 总结

    栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 堆是栈的一个组成元素 19、forward 和redirect的区别 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型...

    习----题-Java-Web程序设计教程-[共2页].pdf

    Java Web 程序设计教程 30 Student s=list.get(i);// System.out.println(s.getSno()+"," +s.getSname()+","+s.getScore());...实现该类并包含添加、删除、修改、按姓名查等几个方法。编写 主程序测试。 参考如下。

    超级有影响力霸气的Java面试题大全文档

     栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 堆是栈的一个组成元素 22、forward 和redirect的区别  forward是服务器请求资源,服务器直接访问目标地址的URL,把...

    韩顺平java源码-DataStructJava:韩顺平JAVA数据结构与算法,重点是算法!

    sort里面是几种排序方法:冒泡排序、插入排序、选择排序、希尔排序 recursion recursion里面是递归的案例,迷宫回溯、一些递归测试、八皇后问题 dac 分治算法里面是汉诺塔问题 dynamic dynamic背包问题 search ...

    达内 coreJava 习题答案

    import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in...

    二十三种设计模式【PDF版】

    有几种画法?艺术大家通常是创造出自己的套路,比如明末清初,水墨画法开始成熟,这时画树就不用勾勒这个模式了,而是一笔 下去,浓淡几个叶子,待毛笔的水墨要干枯时,画一下树干,这样,一个活生写意的树就画出来. 我上面...

Global site tag (gtag.js) - Google Analytics