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循环或迭代器操作。

猜你喜欢

转载自hzy3774.iteye.com/blog/2237028