集合foreach循环和三种迭代的删除

来源:互联网 发布:网络gb是什么意思啊 编辑:程序博客网 时间:2024/05/29 16:55

增强for—foreach循环

* 简化数组和Collection集合的遍历
格式:for(元素数据类型 变量 : 数组或者Collection集合) {使用变量即可,该变量就是元素}好处* 简化遍历

三种迭代的能否删除

import java.util.ArrayList;import java.util.Iterator;import bean.Person;public class g {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[] arr = {11,22,33,44,55};for (int i : arr) {System.out.println(i);}ArrayList<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");for (String string : list) {System.out.println(string);}ArrayList<Person> alist = new ArrayList<>();alist.add(new Person("张三", 23));alist.add(new Person("李四", 24));alist.add(new Person("王五", 25));alist.add(new Person("赵六", 26));for (Person person : alist) {System.out.println(person);}ArrayList<String> list1 = new ArrayList<>();list1.add("a");list1.add("b");list1.add("c");list1.add("d");//1,普通for循环删除for(int i = 0; i < list1.size(); i++) {if("b".equals(list1.get(i))) {list1.remove(i);//通过索引删除元素}}System.out.println(list1);//[a, c, d]ArrayList<String> list2 = new ArrayList<>();list2.add("a");list2.add("b");list2.add("b");list2.add("c");list2.add("d");list2.add("e");list2.add("f");list2.add("g");//1,普通for循环删除,索引要--for(int i = 0; i < list2.size(); i++) {if("b".equals(list2.get(i))) {list2.remove(i);//通过索引删除元素//当删除索引为1的b时,此刻后面的索引全部向前走第二个索引为2的b向前一步他的索引即变为1//此刻i的值为1,执行后i++变为2,即后来索引为1的b不被判断//应该list2.remove(i--);}}System.out.println(list2);//[a, b, c, d]//2,迭代器删除Iterator<String> it = list2.iterator();while(it.hasNext()) {if("e".equals(it.next())) {//list2.remove("e");//不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常// java.util.ConcurrentModificationExceptionit.remove();}}System.out.println(list2);//[a, b, c, d, f, g]//第二种for(Iterator<String> it2 = list2.iterator(); it2.hasNext();) {if("f".equals(it2.next())) {//list.remove("f");//不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常it2.remove();}}System.out.println(list2);//[a, b, c, d, g]//3,增强for循环,增强for循环不能删除,只能遍历for (String string : list) {if("d".equals(string)) {//list2.remove("d");}}System.out.println(list2);}}



0 0
原创粉丝点击