Java集合中迭代器

迭代器的作用:就是用于抓取集合中的元素。

迭代器的方法:

hasNext() 问是否有元素可遍历。如果有元素可以遍历,返回true,否则返回false 。
next() 获取元素...
remove() 移除迭代器最后一次返回 的元素

NoSuchElementException 没有元素的异常。 
出现的原因: 没有元素可以被迭代了。。。

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {

    public static void main(String[] args) {
        Collection c1=new ArrayList() ;
        c1.add("狗娃");
        c1.add("狗剩");
        c1.add("铁蛋");     c1.add("美美");
        Iterator it =c1.iterator();
        while (it.hasNext()) {
            System.out.println("元素是:"+it.next());
        }

    }

}

输出结果:

元素是:狗娃
元素是:狗剩
元素是:铁蛋

元素是:美美

Q:   Iterator()方法返回是一个接口类型,为什么接口又可以调用方法使用呢?

A:   iterator实际上返回的是接口Iterator的实现类。

remove方法:移除迭代器最后一次返回 的元素

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {

    public static void main(String[] args) {
        Collection c1=new ArrayList() ;
        c1.add("北京");
        c1.add("上海");
        c1.add("广州");
        Iterator it =c1.iterator();

            while(it.hasNext())
             {
                if("北京".equals(it.next()))
                {
                  it.remove();
                }
             }
             System.out.println("移除后:"+c1);
      }

    }

输出结果:移除后:[上海, 广州]

package cn.itcast.list;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/*

迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素 个数,如果需要添加或者删除只能使用迭代器的方法进行操作。

如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。

迭代元素 的过程中: 迭代器创建到使用结束的时间。

*/

public class Demo5 {

public static void main(String[] args) {
List list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");

ListIterator it = list.listIterator(); //获取到迭代器
/* while(it.hasNext()){
System.out.print(it.next()+",");
//it.add("aa"); // 把元素添加到当前指针指向位置
list.add("aa"); // add方法是把元素添加到集合的末尾处的。
// list.remove("张三");
}*/

list.add("aa");
it.next();

System.out.println("\r\n集合的元素:"+ list);
}

}

原文地址:https://www.cnblogs.com/dhm520/p/8474635.html

时间: 2024-08-27 06:06:50

Java集合中迭代器的相关文章

java集合中List与set的区别

java集合中List与set的区别.     List可以存储元素为有序性并且元素可以相同.     set存储元素为无序性并且元素不可以相同.     下面贴几段代码感受一下: ArrayList list = new ArrayList();//构造出List对象 list.add(1); list.add("string"); list.add(true); list.add(3.14); list.add(null); for(int i = 0; i < size()

Java集合中的LinkedHashMap类

jdk1.8.0_144 本文阅读最好先了解HashMap底层,可前往<Java集合中的HashMap类>. LinkedHashMap由于它的插入有序特性,也是一种比较常用的Map集合.它继承了HashMap,很多方法都直接复用了父类HashMap的方法.本文将探讨LinkedHashMap的内部实现,以及它是如何保证插入元素是按插入顺序排序的. 在分析前可以先思考下,既然是按照插入顺序,并且以Linked-开头,就很有可能是链表实现.如果纯粹以链表实现,也不是不可以,LinkedHashM

【9.0】对于java集合的迭代器的底层分析

前言:如果对java的集合的遍历(主要是HashMap中的keySet() 和 entrySet()是如何取值并且可以实现遍历的)不是很明白的话,有兴趣深入了解的小伙伴,本文可以作为一个参考,由于时间的原因,就着重讲其遍历的核心代码,底层迭代器的分析.如果对集合的遍历已经迭代器没有基本的理解的话,建议先看看相关的文章:不然很难看懂本文.推荐几篇相关博文: 1.实在没想到系列--HashMap实现底层细节之keySet,values,entrySet的一个底层实现细节 2.Java迭代器深入理解及

java集合中的一些易混淆的知识点

(一) collection和collections 这两者均位于java.util包下,不同的是: collection是一个集合接口,有ListSet等常见的子接口,是集合框架图的第一个节点,,提供了对集合对象进行基本操作的一系列方法. 常见的方法有: boolean add(E e) 往容器中添加元素:int size() 返回collection的元素数:boolean isEmpty() 判断此容器是否为空: boolean contains(Object o) 如果此collecti

如何删除JAVA集合中的元素

经常我们要删除集合中的某些元素.有些可能会这么写. public void operate(List list){ for (Iterator it = list.iterator(); it.hasNext();) { String str = (String)it.next(); if (str.equals("chengang")){ list.remove(str); } } } 这种写法一运行就会报如下异常: Exception in thread "main&qu

Java 集合:迭代器(Iterator, Iterable)

Iterator接口 public interface Iterator<E> { boolean hasNext(); E next(); void remove(); } 访问元素前需要使用hasNext进行判断是否有元素存在,如果有再通过next操作获取,直接使用next操作而不进行hasNext检测,当到达末尾时会抛出NoSuchElement异常 Iterator的remove操作 好久没有看JDK代码了,今天翻看Java Core看到迭代器里面的注意点,居然一点都回忆不起来了.先看

java集合中Comparable和Comparator辨析

一.Comparable和Comparator简介 在对集合元素进行比较时一般使用TreeSet.对于简单的数据类型,TreeSet可以直接进行比较.但是对于复杂的数据类型,比如自己定义的数据类型或者类,就需要自己设置比较方法与比较规则了,这时就需要使用Comparable和Comparator. Comparable和Comparator都是用来实现集合中的排序的,只是Comparable是在集合内图定义的方法实现排序,而Comparator是在集合外部实现的排序.所以如果想对结合排序,需要在

Java集合中对象排序

集合中的对象排序需求还是比较常见的,当然我们可以重写equals方法,循环比较:同时Java为我们提供了更易使用的APIs.当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 下面通过两个例子分别用Comparable和Comparator实现对User对象中年龄排序. Comparable接口方式 类自身实现Comparable接口,实现该接口中的compareTo方法. import java.util.A

java集合中对象某属性比较排序Comparable与Comparator

要对集合中的对象的某属性进行排序有两种方式. a. 一种是要排序对象类实现comparable接口的compareTo方法:然后把对象放入list:然后调用Collections.sort(list);b. 一种是不对要排序对象类做任何改动,创建Comparator接口的实现类C:然后 把对象放入list:然后调用Collections.sort(list, C); a.eg ---------------------------------- 1 public class User imple