/* 关于集合迭代/遍历(重点:五颗星*****) 1、集合对象调用从父接口继承过来的方法iterator()获取迭代器对象 2、迭代器对象中有三个方法分别是: hasNext();用来判断是否还有下一个元素,该方法返回值是布尔类型(true或false) next();与hasNext()联合使用获取元素,该方法返回值是Object类型对象 remove();删除当前元素 小括号中无参数 3、当集合的结构发生改变时,迭代器必须重新获取,如果还用老的迭代器, 就会出现异常:java.util.ConcurrentModificationException 4、在集合迭代过程中,不能调用集合对象的remove方法删除元素,需要使用迭代器的remove方法删除元素。 */ package com.javase.collection; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionText02 { public static void main(String[] args) { // 注意:以下讲解的集合迭代/遍历,是适用于所有Collection及其子类的迭代/遍历方法。不适用于Map集合。 // 创建集合 Collection c = new ArrayList(); // 添加元素 c.add("abc"); c.add("王五"); c.add(100); c.add(new Object()); // 对集合进行遍历/迭代,需要先获取迭代器 Iterator it = c.iterator(); // 通过上面获取的迭代器对象开始迭代集合/遍历集合 while (it.hasNext()){ // it.next()方法的返回值是Object类型,写Object类型之外的任何类型,编译器都会报错 Object o = it.next(); System.out.println(o); } } } class CollectionText03 { public static void main(String[] args) { // 创建集合 Collection c = new ArrayList(); // 不能再这里获取迭代器 // Iterator it = c.iterator(); // 添加元素 c.add(1); c.add(2); c.add(3); // 获取当前集合元素个数 System.out.println("当前集合元素个数:" + c.size()); // 应该在这里获取迭代器 Iterator iterator = c.iterator(); // 迭代集合 while (iterator.hasNext()){ // 注意:iterator.next()方法获取的对象都是Object类型,这里不能写成 Integer integer = iterator.next(); // 集合中存储的实际上就是Integer类型,但是该方法获取的仍然是Object类型。如果需要可以强制类型转换。 Object o = iterator.next(); // 删除获取的元素(这里不能使用集合的c.remove(o)方法;) // c.remove(o); // 需要使用迭代器的iterator.remove();方法 iterator.remove();//删除当前元素 该方法无需添加参数 } System.out.println("删除后集合中元素个数: " + c.size()); } }
关于集合迭代/遍历
于 2022-12-17 08:10:57 首次发布