`
hzy3774
  • 浏览: 992375 次
  • 性别: 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集合遍历是Java编程中最基本也是最重要的操作之一。集合遍历是指对集合中的每个元素进行访问和处理的过程。Java中提供了多种集合遍历方式,包括迭代器遍历、Map遍历、...

    java Map 遍历方法

    本篇文章将详细介绍几种常用的遍历`Map`的方法,包括使用传统迭代器(Iterator)、增强型for循环(For-Each循环)以及通过键集(Key Set)进行遍历。 #### 一、使用Iterator遍历Map 1. **通过`entrySet()`获取迭代...

    java遍历特例

    本文档主要介绍了几种常用的遍历`Map`的方法,包括使用传统的迭代器、增强for循环(引入于JDK 1.5)以及对`TreeSet`进行排序的示例。 #### 二、Map的基本遍历方法 文档首先介绍了使用迭代器遍历`Map`的示例: ```...

    java数组遍历 删除remove(示例代码)

    在处理集合时,有几种遍历方式。在这个例子中,使用了for循环来遍历ArrayList。循环变量`i`从0开始,直到`aa.size()`(当前集合的大小),每次迭代都会获取并打印出集合中相应位置的对象。`aa.get(i)`用于获取索引为...

    java 遍历文件夹

    在Java编程中,遍历文件夹是一项常见的任务,特别是在处理大量数据或进行文件操作时。这个过程涉及到对文件系统中的目录结构进行递归探索,访问每个文件和子目录。在这个过程中,我们通常会关注叶子节点(即没有子...

    Java常用类及集合操作

    ### Java常用类及集合操作详解 #### 一、Java常用类概述 在Java编程语言中,内置了许多实用的类,这些类提供了丰富的功能,能够帮助开发者高效地完成各种任务。本节将详细介绍其中的一些关键类及其用法。 ##### ...

    关于Java中List对象的分页思想-按10个或者n个数对list进行分组

    Java中List对象的分页思想是一种常用的数据处理技术,通过将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素,例如10个或n个。这种技术可以用于解决大规模数据的处理问题,例如批量...

    java 中如何从LIST 对象取值

    Java标准库提供了几种实现`List`接口的类,如`ArrayList`、`LinkedList`和`Vector`等。其中,`ArrayList`是最常用的实现之一,它基于动态数组实现,提供随机访问元素的快速性能。 ### 二、从List中取值 #### 2.1 ...

    Java如何在List或Map遍历过程中删除元素

    在Java中,有几种不同的遍历方式: 1. **使用索引下标遍历**: 当使用索引下标遍历List并尝试删除元素时,可能会遇到遗漏元素的情况。如以下示例所示: ```java for (int i = 0; i &lt; list.size(); i++) { if (2...

    java遍历数组方法.txt

    以上介绍了几种常见的Java遍历数组的方法,每种方法都有其适用场景。选择合适的方法不仅可以提高代码的可读性和维护性,还可以根据实际需求灵活地调整遍历逻辑。在实际开发中,建议根据具体需求和代码风格选择最合适...

    java常用数据结构

    ### Java常用数据结构详解 #### 一、线性表(顺序表) 线性表是数据结构中最基础的数据组织形式之一,通常分为顺序表和链表两种实现方式。本部分主要介绍顺序表,即通过数组来实现的一种线性表。 ##### 1. 顺序表...

    易语言仿java集合 list map源码

    例如,他们可能会创建一个List类,包含添加、删除、查找、遍历等方法,以支持对元素的操作。对于Map,可能需要实现插入、删除、获取键值对、遍历键值对等功能。 `java对象模块.e`可能是一个包含了易语言中对Java...

    java计算同一个list中是否有相同的值

    以下是几种改进策略: 1. **使用哈希集合**:可以使用 `HashSet` 来存储已经遇到的元素。这种方法的时间复杂度为 O(n),其中 n 是列表中的元素数量。 ```java Set&lt;String&gt; seen = new HashSet(); boolean ...

    java for循环的几种写法

    "java for 循环的几种写法" 在 Java 编程语言中,for 循环是一种非常常用的循环语句,用于遍历数组、Collection 等类型的对象。在 J2SE 1.5 中,Java 引入了一种新的 for 循环语法,称为“增强的 for 循环”或...

    java常用的几种集合.doc

    LinkedList基于双向链表实现,对于中间位置的插入和删除操作效率较高,但遍历速度慢于ArrayList。 **Map映射** Map接口是一个键值对(Key-Value)存储的集合,每个键都是唯一的,可以对应一个或多个值。Map接口的...

    Java常用类源码

    本文将深入探讨几个Java中常用的类,包括它们的功能、实现原理以及如何在实际项目中应用。 1. `String` 类:Java中的字符串是不可变对象,由`String`类表示。源码中可以看到`String`是如何实现字符串拼接、比较和...

    正确遍历删除List中的元素方法(推荐)

    以下是几种常见的遍历删除List元素的方法及其注意事项: 1. **通过增强的for循环删除元素** - **问题**:在增强的for循环(foreach)中直接删除元素会导致`ConcurrentModificationException`,因为这种方式不允许...

    Java基于深度优先遍历的随机迷宫生成算法

    Java基于深度优先遍历的随机迷宫生成算法是一种实现这种算法的方法。下面我们将详细讲解这种算法的实现细节。 首先,我们需要了解深度优先遍历(Depth-First Search,DFS)算法的原理。DFS算法是一种图遍历算法,它...

    详解Java多线程处理List数据

    详解Java多线程处理List数据 ...Java多线程处理List数据是一种高效的数据处理方式,可以提高程序的执行效率和性能。但是,我们需要注意线程安全、数据的一致性和线程调度等问题,选择合适的解决方案来解决问题。

Global site tag (gtag.js) - Google Analytics